Bir yükleyici gibi bir program çalıştırıldığında, dosya sistemime yapılan değişikliklerin listesini takip edebilmek, böylece onları daha sonra geri alabilmek istiyorum.
DÜZENLE: Bu bir endişe olmayan paketlenmiş programı. Apt-get'i olabildiğince uzak kullanırım.
İdeal olarak, şöyle bir şey yapabilmeyi isterdim:
(sudo) catch-modifs some-installer.bin > fsmodifs.patch
Ve sonra:
(sudo) revert-modifs fsmodifs.patch
Bunu yapmak için uygun bir yolu var mı?
Bunu yapmanın en kolay (?) Yolu, bir "kalıcı veri bölümü" olan bir LiveUSB'den kurtulmaktır. (Ya da, etkiyi bir chroot hapishanesinde kopyalamak için: bir ro tabakasının üzerine bir rw katmanı monte edin.) Rw dosya sisteminin bir anlık görüntüsünü alın - yeni bir önyüklemeden sonra çok ince olması gerekir - daha sonra yükleyicinizi çalıştırın. Değiştirdiği veya oluşturduğu her dosya, rw "kalıcı veri" kaplama bölmesinde olacaktır. Kaldırılan dosyalar bile "sihirli nokta dosyaları" olarak görünecektir.
Belki de tripwire'ye bir göz atabilirsin? Tripwire aktif örneğinizden daha pasif, ama yine de sizin için işe yarayabilir.
http://www.linuxjournal.com/article/8758
Tripwire, sürekli ve bir saldırı tespit sistemi (IDS),
otomatik olarak kritik sistem dosyalarınızı ve raporlarınızı korur
bir kırıcı tarafından yok edildiyse veya değiştirildiyse
hata). Sistem yöneticisinin hemen ne olduğunu bilmesini sağlar.
tehlikeye atıldı ve düzeltildi.
kullanım
LD_PRELOAD kesişen bir kütüphane yüklemek
open kütüphane işlevi ve dosyayı açmadan önce yol adını değiştirir / çıktıları kaydeder / yedekler.
İçin kaynak koduna bakın.
strace.
Yükleyici bazı ambalajlama tesisini kullanıyorsa (ör.
.deb Debian / Ubuntu / ... için paketler,
.rpm RedHat / CentOS / ... için paketler) daha sonra, paket yükleyici, yükleme ve kaldırma işlemlerinde ne yapılması gerektiğini bilmelidir. Ve inanıyorum inanıyorum mevcut paketleme sistemlerini kullan, kendi icatını değil. (Linux geleneksel olarak Windows gibi kurulumcuları yoktur).
Bir işlem tarafından yapılan dosya değişikliklerini gerçekten izlemek istiyorsanız,
straceveya
ltrace sistem çağrılarını yakalamak için Sen de yapabilirsin Inotify ve ilgili tesisler.
Ama ben bir şey bilmiyorum
catch-modifs &
revert-modifs nasıl istersen.
Uygulamanız için bir yükleyici yapmamanızı öneririz, ancak paket yöneticisini kullanmak
.deb (Ve / veya
.rpm) uygulamanız için paketler. Bağımlılık sorunlarını kendi yükleyicinizden daha iyi idare edecekler.
İstediğinizi elde etmenin kolay yolu: "güvenilmeyen" uygulamayı yepyeni bir sanal makine örneğine (VMWare iş istasyonu, Oracle VirtualBox, vb.) Kurun.
Artık uygulamayı istemediğinize karar verdiğinizde, sanal makineyi silin.
Diğer alternatifleriniz - dosya erişim sistemlerini yakalamak - büyük ihtimalle hataya açık ve eksik olacaktır. Çalışmak için dinamik bağlantı gerektiren herhangi bir çözüme özellikle dikkat edin (Installwatch'ın yaptığı gibi). Bir yükleyici, yasal olarak doğrudan sistem çağrılarını kullanabilir veya statik olarak bağlantılı olabilir.