Files
預設情況下,新創建的目錄應該是可執行的
我正在使用以下步驟來設置權限和預設 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::- .