更多 Linux 權限問題

更多 Linux 權限問題

我讀過無數關於這個主題的文章,並蒐索了我能找到的每個問題和答案,但沒有任何運氣。我慢慢地發瘋了,所以我向你們求助,因為我知道我的問題的答案很可能很簡單。

在我的網頁伺服器上,我有兩個使用者和兩個群組。使用者需要讀取和寫入同一區域。不是單一資料夾,而是一個複雜的資料夾網路。

>> 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)

相關內容