Linux
如何在linux中設置組特定文件夾
我正在嘗試為多個組創建一個隔離的工作區,每個組成員應該只能讀取、寫入和查看其關聯的共享文件夾。
我創建了 2 個使用者組 groupATeam 和 groupBTeam 來處理使用者的權限。我還為相關的項目文件夾 groupA 和 groupB 分配了組權限。
#Check project folder permissions admin@computer:/folder/data$ ls -al /folder/data | grep groupA drwsrws--x 2 root groupATeam 4096 Jun 24 11:56 groupA admin@computer:/folder/data$ ls -al /folder/data | grep groupB drwsrws--- 2 root groupBTeam 4096 Jun 24 11:38 groupB
對於兩個組中的管理員使用者,我可以訪問這兩個文件夾,然後可以毫無問題地進行讀寫。
#Check groups admin@computer:/folder/data$ getent group groupATeam groupATeam:x:1009:worker_3,worker_4,admin admin@computer:/folder/data$ getent group groupBTeam groupBTeam:x:1008:worker_1,worker_2,admin #Check admin can access and write to groupA folder admin@computer:/folder/data$ cd groupA/ admin@computer:/folder/data/groupA$ ls test_file.txt admin@computer:/folder/data/groupA$ cd .. #Check admin can access groupB folder admin@computer:/folder/data$ cd groupB/ admin@computer:/folder/data/groupB$ ls test_file.txt
中的人
groupA
似乎也具有正確的權限,能夠訪問、讀取和寫入他們的文件夾,但不能訪問groupBs
文件夾。# Worker 3 is part of groupA team and therefore should only be able to interact with groupA folder but not groupB worker_3@computer:~$ cd /folder/data/groupA/ worker_3@computer:/folder/data/groupA$ touch test_file101.txt worker_3@computer:/folder/data/groupA$ ls test_file.txt test_file101.txt worker_3@computer:/folder/data/groupA$ vim test_file.txt #Check non group member can acccess restricted groupB folder worker_3@computer:~$ cd /folder/data/groupB/ bash: cd: /folder/data/groupB/: Permission denied # This is the correct behaviour I'm looking for
問題似乎與 groupBTeam 的使用者有關。
# Worker 1 is part of groupB team and therefore should only be able to interact with groupB folder but not groupA worker_1@computer:/folder/data$ cd groupB/ worker_1@computer:/folder/data/groupB$ ls test_file.txt worker_1@computer:/folder/data/groupB$ touch test_file101.txt worker_1@computer:/folder/data/groupB$ ls test_file.txt test_file101.txt worker_1@computer:~$ cd /folder/data/groupA/ #This shouldn't work worker_1@computer:/folder/data/groupA$ ls ls: cannot open directory '.': Permission denied worker_1@computer:/folder/data/groupA$ cd .. # Incorrect behavior, I can access the groupA folder even though worker_1 isn't part of # this group
的成員
groupBTeam
可以訪問groupA
文件夾,這不是所需的行為。誰能解釋為什麼我沒有得到預期的行為以及如何糾正它?
Fore refence,我按照以下步驟設置組和文件夾權限 - https://www.tutorialspoint.com/how-to-create-a-shared-directory-for-all-users-in-linux
您在
groupA
目錄中為其他人設置了執行位:drwsrws--x 2 root groupATeam 4096 Jun 24 11:56 groupA
這允許每個人都可以遍歷目錄,而不管組成員身份如何。如果您注意到,
groupB
在成員groupATeam
無法訪問的目錄上沒有為其他人設置位:drwsrws--- 2 root groupBTeam 4096 Jun 24 11:38 groupB
要獲得所需的內容,請
groupA
使用以下任一命令從目錄中刪除執行位chmod 2770 /path/to/groupA chmod o-x /path/to/groupA
中的使用者
groupBTeam
或其他任何人都無法訪問它。如果您希望它影響目錄中的所有內容,包括文件:
chmod -R 2770 /path/to/groupA chmod -R o-x /path/to/groupA