Files

預設情況下,新創建的目錄應該是可執行的

  • May 24, 2018

我正在使用以下步驟來設置權限和預設 acl 權限。

chown as required
find . -type d -exec chmod 770 {} \;
find . -type f -exec chmod 660 {} \;
find . -type d -exec chmod g+s {} \;
setfacl -Rdm g::rw .
setfacl -Rdm u::rw .
setfacl -Rdm o::- .

這會產生所需的結果,但新創建的子目錄不能(按所有者或組)輸入,因為它們具有 660 權限而不是 770。如何在不更改新文件的預設權限的情況下更正這一問題?

目前我們必須在創建一個新的子目錄後這樣做:

chmod ug+x <sub-directory>

我想消除該手動步驟,因為我的使用者通常不知道該怎麼做。我希望他們能夠在文件管理器中創建一個目錄並立即訪問它。

更新:所有使用者的 umask 設置如下:

cat /etc/profile
# /etc/profile
umask 006

您正在設置根本沒有執行權限的預設 ACL,因此沒有人將擁有執行權限。相反,正如 Patrick 在評論中提到的那樣,使用X權限設置預設 ACL。小寫x表示ACL條目授予執行權限。僅當某些使用者(通常是所有者)具有執行權限時,大寫X才會授予執行權限。

除非您正在做一些不尋常的事情,否則請始終X任何有r. 擁有可讀但不可執行的文件或目錄的理由很少,反之亦然。Unix 將執行和讀取作為單獨的權限實現,而對於目錄,它將遍歷和列出作為單獨的權限實現,但很少有這種情況是可取的:通常允許特定使用者集修改文件,允許更大的使用者集在不修改它的情況下訪問它,對於正常文件,該文件可能是可執行的,也可能不是可執行的,但該屬性不取決於誰試圖訪問它。

setfacl -Rdm g::rwX .
setfacl -Rdm u::rwX .
setfacl -Rdm o::- .

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