Giriş yaparken aşağıdakileri yapabilirim:
mkdir foo
touch foo/bar
chmod 400 foo/bar
chmod 500 foo
Sonra vim'i açabilirim (değil root), düzenlerim bar, yazmaya zorlarım w!ve dosya değiştirilir.
İşletim sisteminin herhangi bir dosya değişikliğini reddetmesini nasıl sağlayabilirim?
GÜNCELLEME Mar 02 2017
chmod 500 fookırmızı bir ringa balığıdır: bir dizindeki yazma izninin bir dosyanın içeriğini değiştirme yeteneği ile ilgisi yoktur - yalnızca dosya oluşturma ve silme yeteneği.chmod 400 foo/barAslında dosyanın içeriğinin değişmesini engeller. Ama , bu yok değil bir dosyanın sahibi her zaman (hepsi atası dizinlerde çalıştırma izni yani dosyaya erişebilir varsayarak) onun dosyanın izinleri değiştirebilir - değiştirip bir dosyanın izinlerini engeller. Aslında, strace (1) vim'in (7.4.576 Debian Jessie) yaptığı şeyin bu olduğunu gösteriyor - vim, dosyanın sahibinin yazma iznini geçici olarak eklemek için chmod'u (2) çağırıyor, ardından dosyayı değiştiriyor ve ardından chmod'u çağırıyor ( 2) tekrar yazma iznini kaldırmak için. Bu yüzdenchattr +ieserleri kullanmak - sadece root çağırabilirchattr -i. Teorik olarak, vim (veya herhangi bir program), root olarak çalıştırıldığında değişmez bir dosya üzerinde chmod ile yaptığı gibi chattr ile aynı şeyi yapabilir.
root?
vim, aslında izinleri değiştirip geri koyulduğuna inanıyorum .