File-Permissions

使用子目錄在同一台機器上的使用者之間動態共享文件/文件夾

  • December 1, 2020

我的 Linux 系統上有 3000 多個本地使用者。我想為文件夾或文件動態設置權限。我在研究這個主題時遇到了 ACL(訪問控制列表)。所有使用者的家庭位置必須對其他使用者隱藏。但是,如果我想為使用者首頁的子文件夾中的某些文件或文件夾授予權限,那我該怎麼辦?

其實我想說的是:

在此處輸入圖像描述

當我阻止 /user1 的 /user2 目錄時,我無法從 user1 訪問 user2 的子目錄。我該如何解決這個問題?

我看了這裡,雖然它與我的問題並不完全相似。我不希望使用者看到彼此的目錄。

我的救命稻草在哪裡?

是的,文件 ACL 可以做到這一點。您想要的是授予 traverse ( x) 權限,而不是 read ( r) 權限。對於目錄:

  • Traverse 允許使用者沿著目錄樹遍歷目錄節點。在命令方面它讓他們執行cd directory
  • Read 允許使用者讀取目錄的內容。在命令方面它讓他們執行ls directory

因此,對於圖中的 user1:

# Allow user1 to cd /home/user2/folder/subfolder/subfolder:
setfacl -R -m u:user1:x /home/user2/folder/subfolder/subfolder
# Allow user1 to ls /home/user2/folder/subfolder/subfolder:
setfacl    -m u:user1:r /home/user2/folder/subfolder/subfolder

注意:

  • 在第一個命令中,您需要-R(遞歸)標誌,因為您需要設置x所有父目錄的權限。沒有它,user1 將無法訪問葉目錄來讀取它,即使您在那裡授予他們讀取權限也是如此。
  • 在您想要的第二個命令中-R,因為您只想授予葉子目錄的讀取權限 - 而不是它的任何父目錄。

請參閱了解 Linux 目錄權限推理

引用自:https://serverfault.com/questions/1043640