Permissions

FreeBSD 標誌、不可變和非連結之間有什麼區別?

  • June 5, 2015

FreeBSD 標誌、simmutable/uimmutable 和 sunlink/uunlink 之間有什麼區別或相似之處?

閱讀man chflags,我看到這些標誌:

schg, schange, simmutable
   set the system immutable flag (super-user only)
sunlnk, sunlink
   set the system undeletable flag (super-user only)
uchg, uchange, uimmutable
   set the user immutable flag (owner or super-user only)
uunlnk, uunlink
   set the user undeletable flag (owner or super-user only)

我目前以與 Linux 手冊頁chattr描述它相同的方式理解不可變屬性:

不能修改具有“i”屬性的文件:不能刪除或重命名,不能創建指向該文件的連結,也不能向該文件寫入數據。只有超級使用者或擁有 CAP_LINUX_IMMUTABLE 能力的程序才能設置或清除此屬性。

FreeBSD 中的“不可變”和“不可刪除”有何不同?

從系統呼叫chflags(2)的聯機幫助頁:

SF_IMMUTABLE   The file may not be changed.
SF_NOUNLINK    The file may not be renamed or deleted.
[...]
UF_IMMUTABLE   The file may not be changed.
UF_NOUNLINK    The file may not be renamed or deleted.

帶有前綴的標誌**SF_只能由超級使用者設置或取消設置。其他前綴UF_**可以由文件所有者或超級使用者設置或取消設置。

注意:如果SF_設置了其中一個標誌,則非超級使用者無法更改任何標誌,即使超級使用者也只能在安全級別為 0 時更改標誌。

可以使用 kern.securelevel 變數上的 sysctl(8) 設置安全級別。

引用自:https://unix.stackexchange.com/questions/207769