Soru Linux - Bir dosyanın root tarafından bile silinmesini engellemenin / korumanın bir yolu var mı?


İşyerimde bir uygulamanın kullandığı çok önemli bir dosyam var, bunun silinmemesine dikkat etmem gerekiyor, bunu nasıl yapabilirim?


86
2017-12-02 16:02


Menşei


Yedekleme yapın, böylece geri yükleyebilirsiniz ... Bunun dışında, chattr +i yardımcı olabilir, ancak dosyayı da salt okunur yapar (ve chattr -i), ayrıca SELInux vb. ile korumaya çalışabilirsiniz. - Sven♦
Kök, kökün bile öldürebileceği bir süreç oluşturabilir mi? - Mark Gabriel
@MarkGabriel Evet. Bir çatal bombası. :) - reirab
Tanrım, Kök, fark nedir? - Dan Neely
HW Admin diski gelip çıkarabilir, parçalayabilir, kalıntıları yakabilir ve hoghs'a besleyebilir. Ya da, daha da iyisi, bazı C (++) programcısı bazı nazal şeytanları indükleyebilir. Sizin için önemli olan her şeyi yedekleyin. İki defa. - Pavel


Cevaplar:


Evet, dosyanın niteliklerini salt okunur olarak değiştirebilirsiniz.

Komut şu:

chattr +i filename

Ve devre dışı bırakmak için:

chattr -i filename

itibaren man chattr:

İle bir dosya i öznitelik değiştirilemez: silinemez veya yeniden adlandırılamaz, bu dosyaya herhangi bir bağlantı oluşturulamaz ve dosyaya herhangi bir veri yazılmaz. Sadece süper kullanıcı veya sahip bir işlem CAP_LINUX_IMMUTABLE yeteneği bu özelliği ayarlayabilir veya temizleyebilir.


128
2017-12-02 16:04



İlgilenen için, bsd eşdeğeri chflags schg - Andrew Domaszek
Kök erişimli bir kullanıcının bu bayrağı kaldırdığını ve ardından dosyayı silebileceğini unutmayın. Kaza ile gerçekleşmesi olası değildir, ancak kasıtlı silinmeye karşı doğru değildir. - Grant
@ Grant, eğer değilse securelevel yeterince yüksek ayarlanmış. Önyükleme işlemi, güvenlik etkinleştirmesini ağ etkinleştirilmeden önce 2'ye ayarlar; böylece bayrağın sıfırlanması, yerel makine erişimini gerektirir (ancak bu, bu süreden önce önyükleme işleminde kullanılan dosyaların da değişmez olması gerektiği anlamına gelir). - Simon Richter
@Grant Eğer kişi aşırı uç almak istiyorsa, bölümün silinmesini engelleyemezsiniz veya disk 10 ^ 30 yılda bir fırına veya protonun çürümesine engel olamaz ... - Hagen von Eitzen
@Itai Ganot adam keşke onu 4 gün önce okumuş olsaydım. Aldığım bir sınavda soru sordum = / - vfbsilva


CD'ye yaz. CD'yi bir CD-ROM sürücüsüne yerleştirin ve oradan erişin.


80
2017-12-03 15:18



Kutudan çıkmak için +1. Ve, afaik, aynı zamanda bazı durumlarda daha önce de kullanılmıştır (siyah-kutu cdrom sürücü ile hedefine gönderilir). Birisi sürücüyü yine de kesebilirse uygun olmayabilir. - Alex Mazzariol
ÖPMEK. Onu seviyorum! +1 - MonkeyZeus
Bence bu sorunun doğru cevabı bu. Dosya özniteliğini değiştirme (chattr -i) kötü amaçlı eylemleri engelleyemez. - Bruno von Paris
Bu gün, yerleşik bir kart okuyucuda tam boyutlu bir SD kart daha iyi bir çözüm olabilir - daha az güç tüketimi, birçok durumda daha hızlı erişim ve yazmadan kullanımda daha dayanıklı. - Chris H
@ jpmc26 dolayısıyla CD-ROM sürücüsü. Bunlar okunur / sadece. - Thorbjørn Ravn Andersen


  1. Bir dosya sistemi görüntüsü oluşturun.
  2. Resmi bağla.
  3. Dosyayı monte edilmiş görüntüye kopyalayın.
  4. Resmi ayırın ve salt okunur olarak yeniden takın.
  5. Şimdi onu silemezsiniz.

Örnek:

# dd if=/dev/zero of=readonly.img bs=1024 count=1024
# mkfs.ext2 readonly.img
# mkdir readonlyfolder
# mount readonly.img readonlyfolder/
# echo "can't delete this" > readonlyfolder/permanent.txt
# umount readonlyfolder
# mount -o ro readonly.img readonlyfolder
# cat readonlyfolder/permanent.txt 
can't delete this
# rm readonlyfolder/permanent.txt 
rm: cannot remove `readonlyfolder/permanent.txt': Read-only file system

28
2017-12-03 20:33



mount -o remount,rw readonlyfolder/ && rm readonlyfolder/permanent.txt - Kaz Wolfe
Bunu biraz daha ele alarak kullanabilirsiniz squashfs veya cramfs sıkıştırılmış ve salt okunur. Dosya sistemini oluşturmak için özel bir araca ihtiyaç duyar. - Zan Lynx


Dosyaya birden çok sabit bağlantı oluşturmanız gerekir. Bunlar, normal kullanıcıların erişemediği çeşitli yerlerde olmalıdır.

Bu şekilde, chattr korumanızı geçersiz kılmayı başarsalar bile, veriler kalacaktır ve uygulamanızın aradığı yeri kolayca geri yükleyebilirsiniz.


6
2017-12-03 05:15



Sabit bağlantılar dosyanın içeriğini korumaz. - 200_success
Ancak, orijinal soru olan DELETION'dan ek koruma sağlayabilecekler. - barbecue
@barbecue Dosya, bir uygulamanın baktığı adla bağlantısı kaldırılmamışsa, dosyanın içeriğinin başka bir ad altında mevcut olması önemli değildir. Dosyayı beklenen ada sahip herhangi bir şey için, dosya hala silinmiştir. - α CVn


Linux sözde bağlamak montajlı oldukça güçlü ve kullanışlı özellik olan seçenek bilmek:

%  cd $TMP && mkdir usebindmountluke && cd usebindmountluke
%  echo usebindmountluke > preciousfile
%  sudo mount -B preciousfile preciousfile
%  sudo mount -oremount,ro preciousfile
%  echo sowhat > preciousfile
zsh: read-only file system: preciousfile
%  rm preciousfile
rm: cannot remove ‘preciousfile’: Read-only file system

- burada yapılan şey kendisine bağlanan bir dosyadır (evet, bunu Linux'ta yapabilirsiniz), daha sonra R / O modunda yeniden monte edilir. Tabii ki bu dizin için de yapılabilir.


6
2017-12-06 23:40





Diğerleri sorduğun gibi sorunuzu yanıtladı. @Sven bir yorumda bahsettiği gibi, soruna genel çözüm olarak, "Bir dosyayı asla kaybetmediğimden nasıl emin olabilirim?" dosyanın bir yedeğini oluşturmaktır. Dosyanın bir kopyasını yapın ve birden çok yerde saklayın. Ayrıca, dosya son derece önemliyse ve şirketiniz bir yedek hizmet ile önemli verileri yedeklemeye yönelik bir ilkeye sahipse, bu dosyanın hizmete dahil edilmiş olmasını isteyebilirsiniz.


5
2017-12-03 07:02



Tabii ki, dosya düzenli olarak yedekleniyor, ben sadece root kullanıcı izinleri ile kutu üzerinde çalışan kullanıcılara karşı başka bir koruma katmanı istedim.


Bir yorumda Kevin tarafından cevapJerry şöyle diyor:

Tabii ki, dosya düzenli olarak yedekleniyor, ben sadece root kullanıcı izinleri ile kutu üzerinde çalışan kullanıcılara karşı başka bir koruma katmanı istedim. -

Bu uygulamayı değiştiremeyeceğinizi, gerçekten çok kötü bir fikir olduğu için farz edeceğim.

Salt okunur bir cihaz kullanmayla ilgili tüm önerilerde aynı sorun vardır - ihtiyacınız olduğunda meşru değişiklikler yapabilmeniz için bir PITA yapar. SD kart gibi kilitlenebilir bir sürücü durumunda, değişikliklerinizi yapmak için kilidini açtığınızda aniden savunmasız olduğunuz soruna girersiniz.

Bunun yerine öneriyorum, NFS sunucusu olarak başka bir makine kurmak ve önemli dosyaları içeren dizinin, kullanıcıların kökünde bulunduğu makine (ler) ile paylaşılmasıdır. Bağlamayı salt okunur olarak paylaşın, böylece güvendiğiniz kullanıcıların olmadığı makinelerde herhangi bir değişiklik yapılamaz. Yasal olarak değişiklik yapmanız gerektiğinde, NFS sunucusuna bağlanıp değişikliklerimizi burada yapabilirsiniz.

Bunu web sunucularımız için kullanıyoruz, böylece web sunucusuna karşı başarılı bir istismar, sunucunun daha sonra yeniden sunacağı veya yapılandırmayı değiştireceği dosyaları ekleyemez veya değiştiremez.

Bunun, takma noktasıyla ilgili olanların hepsinin olabileceği şekilde atlanabileceğini unutmayın:

  • Korunan dizinin bir kopyasını yapın
  • Dizinin bağlantısını kaldırın
  • Kopyayı, montaj yerine yerine taşıyın veya bu montajın yeterli alana sahip olmaması durumunda onu işaretleyin.

3
2017-12-07 13:04



Önemli bir dosyayı düzenli olarak yedeklemek ve orijinali yanlışlıkla silinmeye karşı korumak için neden "gerçekten, gerçekten kötü bir fikir"? OP'nin asıl sorusunda ve OP'nin başvurduğun cevap hakkındaki yorumuna göre, kaygının kötü niyetli bir faaliyet olmadığı, kazara / beceriksiz faaliyet olduğu açıktır. - Craig
@Craig: Köklü bir çok kullanıcıya sahip olmak, özellikle de kritik dosyalara bulaşmama konusunda güvendikleri takdirde kötü bir fikir. - Joe H.
Ah ... elbette öyle. :-) Ama bu OP'nin sorusunun zıttı değildi. OP orada olduğunu iddia etti. Hangi Bir dosyayı yanlışlıkla silmeye karşı korunmaları gereken root erişimi olan kullanıcılar. - Craig
@Craig: Sorunun püf noktası olmayabilir, ama olduğu Sorunun en önemli noktası (XY problemi?) ... ama ne yaptıklarını hiçbir fikrim yok, bu yüzden setuid ve / veya sınırlı sudo ayrıcalıklarından faydalanabilirler. Ve soruyu yeniden okumalısınız, çünkü Jerry'nin hiçbir zaman kasıtlı olmayan bir şekilde kaldırılmasına karşı koruma sağlamaya çalıştığını (“her ne olursa olsun silmediğinden emin olmak istiyorum”) bir soruya değindim. bakın (yanıtımı tetikleyen). - Joe H.
OP'nin bu cevaba cevabını görün - Craig


Linux'ta değişmez bayrak sadece bazı dosya sistemi türlerinde desteklenir. ext4, xfs, btrfs...)

Desteklenmeyen dosya sistemlerinde, başka bir seçenek de dosyayı salt okunur modda kendi kendine bağlamaktır. Bunun iki adımda yapılması gerekiyor:

mount --bind file file
mount -o remount,bind,ro file

Her açılışta yapılması gerekiyor, örneğin /etc/fstab.


3
2017-12-08 16:32



Umarım kimse umount tekrar yazma izni almak için dosya - whoan


Neden tasarım tarafından salt okunur bir ISO 9660 görüntüsü oluşturulmuyor?

ISO görüntüsünü takın ve bir CD-ROM gibi görünecektir, ancak bir sabit sürücünün performansı ile, monte edilen görüntüdeki dosyalar fiziksel CD-ROM'daki dosyalar kadar silinmekten de kurtulacaktır.

Hassas dosyayı bir CD'ye yazma ve CD-ROM'dan çalıştırma fikri, dosya üzerinde değişmez bitin ayarlanmasının yeterli olmadığı varsayımıyla ilginçtir.

Performans dahil olmak üzere fiziksel bir CD'den çalıştırılmasıyla ilgili olası olumsuz sorunlar var (CD-ROM sürücüleri sabit sürücülerden veya SSD'lerden çok daha yavaştır). CD-ROM'un iyi niyetli bir birey tarafından kaldırılması ve erişime ihtiyaç duydukları farklı bir diskle değiştirilmesi olasılığı vardır. Kötü amaçlı bir partinin diski alıp mikrodalgada (ya da çöp kutusunda) fırlatması ve böylece dosyanızı "silmesi" ihtimali vardır. Sadece bir dosya ve diğer etkenler için özel bir donanım CD-ROM sürücüsüne sahip olmanın sakıncaları var.

Ancak OP, asıl amacın, kötü niyetli eylemlere karşı değil, yanlışlıkla silinmeye karşı korunmak olduğunu ve söz konusu dosyanın (dosyaların) yedeklenmesi ve bir kaza meydana geldiğinde kurtarılabileceğini açıkça ortaya koymuştur, ancak dosyanın hiç bir zaman istenmemesi çok arzu edilir. yanlışlıkla silinir.

Dosyayı monte edilmiş bir ISO görüntüsünden çalıştırmak, gereksinimi karşılayacak gibi görünüyor.


2
2017-12-06 23:03



Kök, görüntüyü doğrudan işleyerek bir dosyayı silebilir. Bu sadece monte edilecek normal bir dosyadır. - Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen Ne kadar? ISO 9660 tasarım tarafından değiştirilemez. Bu değişikliği yapan taraf tüm ISO dosyasını silip değiştirmelidir. Bunu yapamayacakları için değil. Ama o zaman bile olsa, bir dosyaya büyük bir uzmanlık olmadan girip cerrahi olarak silemediler. Fiziksel bir CD-ROM'u bir sürücüden çıkarmak ve bir çöp kutusuna atmak çok daha kolay olurdu. ;-) - Craig
Gelişmiş olmaya gerek yok - sadece görüntü dosyasını sıfırlarla yaz. - Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen Bu noktayı yeterince kolaylaştıracağım. Uyarı, resmin kasıtlı olarak sökülmesini ve üzerine yazılmasını gerektirir. Tam bir perp sadece shred o noktada. Ancak, makineye fiziksel erişimi engellemediğiniz sürece, fiziksel bir CD'yi sürücüden dışarı atmak ve ISO dosyasından ayırmak ve üzerine yazmaktan ziyade çöp kutusuna atmak daha kolay görünüyor. Ve OP, önemli dosyanın düzenli bir şekilde yedeklendiğini belirtmiştir, bu yüzden bu, yanlışlıkla zarar görmesine karşı, kötü niyetli yaralanmaya karşı değil, ekstra bir önlemdir. - Craig
Bir ISO9660 görüntüsünü değiştirilemez olsa bile nasıl değiştireceğimi işaret ettim. Benim amacım, bir bit yazılabilirse, root yazabilir. - Thorbjørn Ravn Andersen