Linux

如何對使用者進行分組以向組中的每個使用者授予相似的文件權限

  • September 6, 2019

我有 2 個使用者user1,並且user2在我的 Ubuntu PC 中。user1是我在安裝過程中創建的。我創建user2了一個執行 python 程序。現在,這個程序存在於路徑中/home/user1/programs/。因此,user2正在執行位於user1. 在執行期間,我無法在輸出目錄中創建文件/home/user1/programs/Output/。因此,我繼續檢查權限並發現以下內容:

$ ls -l /home/user1/programs/
drwxrwxr-x 10 user1 user1 4096 Sep  6 11:30 Output
drwxrwxr-x  2 user1 user1 4096 Sep  5 17:50 source

$ cd Output

$ mkdir dummy1

$ ls -l
drwxrwxr-x 2 user1  user1  4096 Sep  6 11:30 dummy1

$ cd dummy1

$ vi a.txt

$ ls -l
-rw-rw-r-- 1 user1 user1 7 Sep  6 11:31 a.txt

$ cd ..

$ sudo mkdir dummy2

$ ls -l
drwxr-xr-x 2 root root 4096 Sep  6 12:37 dummy2

很明顯,其他使用者user2喜歡writehome.user1

現在,我想將使用者添加user1user2具有相同權限的同一個組中,以便user2獲得一個rwx (7)?如何創建這樣的群?

sudo -i
addgroup mygroup
addgroup user1 mygroup
addgroup user2 mygroup
chgrp -R mygroup /home/user1/programs/Output/
chmod -R ug+rwX  /home/user1/programs/Output/
find /home/user1/programs/Output/ -type d -exec chmod g+s {} +
exit

這會添加一個名為 的組,將兩個使用者都添加到該組,並將(以及所有文件和子目錄)mygroup的組所有權更改為./home/user1/programs/Output/``mygroup

然後將目錄的權限設置為讀、寫、執行以及其中的所有文件允許讀和寫。同樣,這遞歸地應用於所有子目錄../Output/

最後,它在目錄上設置 setgid 位,chmod g+s以便在下面創建的所有文件和子目錄/home/user1/programs/Output/都將在mygroup.

所有這些都需要以 root 身份完成,因此sudo -i首先啟動 root shell exit,最後退出 root shell。

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