Sudo kullanmadan, tercihen?
Sudo kullanmadan, tercihen?
Yanıtlar:
Deneyin:
chattr +i filename
Ancak bunu yapmak, dosyayı root
kullanıcı tarafından bile silinemez hale getirir - dikkatli kullanın.
touch test && chattr +i test
bir hata atar; chattr: Operation not permitted while setting flags on test
. Buna ihtiyacın var sudo
. Bunun yanında: hala sudo chattr -i test && rm test
çalışır : dosyayı silmek mümkündür .
Hayır, bu mümkün değil. Normal kullanıcıların bir dosyayı silmesi imkansız: tabii.
sudo
Kullanıcıların dosyaları silmesini önlemeniz gerekir . Yöneticiniz her zaman bir dosyayı silebilir.
sudo chattr +i test
silmeyi önleyebilir ancak gerektirir sudo
. Basit bir sudo chattr -i test
dosya kaldırmak mümkün kılar. Yönetici dışında hiçbir kullanıcı kullanamaz chattr
.
Ve ... sadece yeniden başlatma ve kurtarma moduna geçme, o kişinin bu dosyayı silmesine izin verecektir. Bir dosyayı asla silememek için bir yöntem olsaydı bir güvenlik riski olurdu.
Biraz kaba, ama bu yakın - dizindeki yazma erişimini kaldırırsanız içindeki dosyalar silinemez. Ve sahibi sudo
olmanız gerekmiyor :
=^_^= izkata@izein:~$ mkdir test
=^_^= izkata@izein:~$ touch test/delme
=^_^= izkata@izein:~$ chmod a-w test
=^_^= izkata@izein:~$ echo 'Hello' > test/delme
=^_^= izkata@izein:~$ cat test/delme
Hello
=^_^= izkata@izein:~$ rm test/delme
rm: cannot remove `test/delme': Permission denied
Böylece dosyanın kendisinde izinleri istediğiniz gibi ayarlayabilirsiniz.
Ayrıca, @Rinzwind tarafından belirtildiği gibi, çevresinde kesinlikle birçok yol vardır.
Bir dosyayı silmek için, dosyanın bağlı olduğu tüm dizinlere yazma izniniz olmalıdır. Bir dizinden bağlantısını kaldırmak için o dizine yazma izniniz olmalıdır.
Dosyaya yazma izni (veya sahiplik) verdiğiniz, ancak dosyanın bağlı olduğu dizine veya dizinlere vermediğiniz sürece, bu dosya silinemez.
Bunu başarmanın en iyi yolu, bu dosyayı root'a ait olan ve hiç kimse tarafından yazılamayan bir dizine bağlamaktır. Bunun yerine size ait olabilirsiniz, bu da hem sizin hem de kökünüzün silebileceği anlamına gelir.
Bu, yine de diğer kullanıcıların bu dosyayı diğer dizinlere bağlamasına ve daha sonra oradan bağlantısını kaldırmasına izin verir, ancak yine de dosyayı kendi dizininizle olan bağlantısını kaldırabileceklerinden silemezler.
Bunun tam olarak çalışması için her yol bileşeninin dosyaya yazma izninin kontrol edilmesi gerektiğini unutmayın. Örneğin dosya olup olmadığı Çünkü /a/b/the-file
ve sahip /a/b
herkes tarafından yazılabilir değil ama herkes yazma erişimi vardır /a
, o zaman adlandırmak olabilir /a/b
başka bir şey ve kendi yeniden /a/b
ve kendi yaratmak /a/b/the-file
orada.