Linux
停止強制保存具有隻讀權限的文件
我有一個目前位於的腳本文件,
sudoers
為了安全起見,我希望這個文件是只讀的……所以我發出了以下 chmod:chmod 555 test.sh
現在這個文件的權限是
-r-xr-xr-x
但是,當我去 vi 這個文件時,即使它說
W10: Warning: Changing a readonly file
,我仍然可以做“w!” 強制保存它。我怎樣才能禁用強制保存,以便普通使用者根本無法寫入該文件?
在 Linux 系統上,使用chattr設置不可變文件屬性。
sudo chattr +i file
不能修改具有“i”屬性的文件:不能刪除或重命名,不能創建指向該文件的連結,不能修改文件的大部分元數據,不能以寫入模式打開文件。只有超級使用者或擁有 CAP_LINUX_IMMUTABLE 能力的程序才能設置或清除此屬性。
用於
lsattr
列出文件的屬性。lsattr -l myfile myfile Immutable
這樣做的缺點是即使作為超級使用者(root)也無法寫入文件。您需要先刪除不可變屬性:
sudo chattr -i file
在 macOS 上,chflags命令用於設置和重置不可變標誌。設置:
chflags uchg file
並取消設置或清除:
chflags nouchg file
這些操作可以由文件的所有者或超級使用者執行。
在 macOS 中,使用
-Ol
帶有設置時ls
顯示不可變標誌的標誌uchg
。