我讀過無數關於這個主題的文章,並蒐索了我能找到的每個問題和答案,但沒有任何運氣。我慢慢地發瘋了,所以我向你們求助,因為我知道我的問題的答案很可能很簡單。
在我的網頁伺服器上,我有兩個使用者和兩個群組。使用者需要讀取和寫入同一區域。不是單一資料夾,而是一個複雜的資料夾網路。
>> groups user_1
popuser psaserv psacln
>> groups user_2
psacln popuser psaserv
這些不是真正的用戶,因此他們沒有 .bashrc 檔案。當每個使用者建立一個目錄時,權限看起來完全符合我的預期:
drwxr-xr-x 2 user_1 popuser 4096 Apr 30 20:47 folder_1
drwxr-xr-x 2 user_2 psacln 4096 Apr 30 20:49 folder_2
但是,一旦兩個使用者之一建立了該資料夾,另一個使用者就無法向其中寫入任何檔案。
如果我chmod 777,那當然他們都可以寫。
貓/etc/組
popuser:x:31:user_1,psaserv,user_2
psacln:x:505:user_2,user_1,psaserv
同樣不尋常的是,當檔案寫入群組時,權限似乎非常嚴格:
-rw-r--r-- 1 user_2 psacln 0 Apr 30 21:15 some_file.ext
儘管這也許是預料之中的。
無論如何,總結並澄清我的兩部分問題:
1) How can I make both users access files and folders from each other, given their group differences?
2) How can I set the default permissions on new files so they inherit the folder permissions?
(2) 我嘗試將 umask 022 新增至我的 root 使用者的 ~/.bashrc 檔案中,但它沒有執行任何操作。我不確定要將這些沒有主目錄的「使用者」放在哪裡。
抱歉,我知道這樣的問題對於 Linux 用戶專家來說可能會覺得多餘。當我甚至不知道自己在尋找什麼時,搜尋就很困難。
一如既往,非常感謝。
[我在centOS]
答案1
1)考慮到群組的差異,如何使兩個使用者相互存取文件和資料夾?
一種方法是為目錄指定一個使用者共有的群組。
chgrp psaserv folder1 folder2
chmod g+w folder1 folder2
2)如何設定新檔案的預設權限,以便它們繼承資料夾權限?
使用“設定組 ID”位元。
chmod g+s folder1 folder2
不能繼承rwx權限,設定umask。
我嘗試將 umask 022 新增至 root 使用者的 ~/.bashrc 檔案中,但它沒有執行任何操作。我不確定要將這些沒有主目錄的「使用者」放在哪裡。
您已安排某個進程正在使用這些使用者 ID。您應該安排該進程將其 umask 設為 022。也許您使用sudo
,也許它是一個網頁伺服器,也許它是其他東西。除非你解釋,否則實際上不可能提供詳細的具體建議。
答案2
如果您希望使用者建立的新檔案預設可由群組成員寫入,則需要將 umask 修改為 022 以外的其他值。 umask,參見https://stackoverflow.com/questions/10220531/how-to-set-system-wide-umask)。
烏馬斯克解釋
新建立的檔案和目錄的預設檔案權限是標準權限(rw-rw-rw
檔案、rwxrwxrwx
目錄)減去目前 umask 設定。 umask 設定為 000 將保留標準權限,而設定為 777 將刪除所有權限。
umask中的三個數字分別代表使用者、群組和任何人的權限。該數字代表三個二進制數字是否刪除特定權限。
d - rwx
-------
0 - 000 (rwx)
1 - 001 (rw-)
2 - 010 (r-x)
3 - 011 (r--)
4 - 100 (-wx)
5 - 101 (-w-)
6 - 110 (--x)
7 - 111 (---)
要計算新檔案將具有給定的 umask 的權限,請從預設權限開始並減去 umask。
orig rwx rwx rwx (777, default directory permission)
umask 000 010 010 (022)
result rwx r-x r-x (755)
orig rw- rw- rw- (666, default file permission)
umask 000 010 010 (022)
result rw- r-- r-- (644)
orig rwx rwx rwx (777, default directory permission)
umask 000 000 010 (002)
result rwx rwx r-x (775)
orig rw- rw- rw- (666, default file permission)
umask 000 000 010 (002)
result rw- rw- r-- (664)