Linux

某個非超級使用者擁有但不能被他們刪除的目錄

  • April 8, 2022

是否可以創建其所有者無法刪除的目錄?假設我有baruser 擁有的目錄foo,我想創建一個 subdirectory bar/baz,也由 擁有foo,這樣:

  • foo``bar/baz可以正常創建和刪除文件和目錄
  • foo``bar可以正常創建和刪除文件
  • foo``bar可以正常刪除大多數目錄
  • foo(或任何其他非超級使用者)不能刪除目錄bar/baz

我想這樣做的原因是因為我想設置bar/baz為 BTRFS 子卷(從快照中排除它),如果foo可以刪除它並使用重新創建它mkdir,那麼它就不再是子捲了。

我至少可以想到兩種方法來防止所有者刪除目錄。

  • 如果目錄不為空,則無法刪除該目錄。所以在裡面放一些所有者不能刪除的東西。

    • 他們不擁有的目錄
    • 不可變的文件(所有者無關緊要)
  • 在目錄上掛載一些東西

在第一種情況下,他們仍然可以重命名目錄。但是如果上面安裝了一些東西(無論如何這就是你想要的),他們就無法對它做任何事情。現在,如果他們可以解除安裝上面的東西……

刪除文件或目錄都需要父目錄的權限。

因此,如果您有 的目錄/dir1/dir2,其內容dir2無所謂,所有者dir1設置為user1,所有者dir2設置為user2,則無論 中是否有文件,都user2無法刪除或重命名。看看吧。沒有使用者可以刪除自己的主目錄,因為擁有.dir2``dir2``/home``root``/home

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