File-Permissions
使用子目錄在同一台機器上的使用者之間動態共享文件/文件夾
我的 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 目錄權限推理。