新建立檔案的 Linux 目錄權限繼承

新建立檔案的 Linux 目錄權限繼承

我有以下資料夾

 drwxr-xr-x   7 root root 45056 Nov 25 12:39 data

其中包括所有子目錄和檔案 755 ,

但是當我在這些目錄中建立新檔案時它會獲得許可

-rw-r--r-- 1 root root    0 Nov 28  2013 new

如何在這些目錄中建立新檔案需要 755 而無需手動執行我嘗試了 chmod g+s 但沒有任何反應,

有小費嗎

答案1

設定位元權限的唯一方法是透過 umask。建立檔案時,例如權限為 666(八進位),您的 umask 決定哪些位元翻轉為 0。

進一步解釋: rwx rwx rwx 分別代表 User Group World。如果每個位元都設為 1 (111 111 111),則這將是 0777(八進位)。 0666 是 110:110:110 或 rw_rw_rw。希望這是有道理的。

預設情況下,您的 umask 為 022 -(八進位 022)。這表示哪些位元要保留 (0),哪些位元不保留 (1)。 (這樣有點不直觀)。

以 666 建立的檔案為例: 6 & ~0 = 6 6 & ~2 = 4 6 & ~2 = 4

因此建立的文件的權限為 644 (rw-r--r--)。

請注意,umask 的作用是屏蔽提供給檔案建立呼叫的位元。如果呼叫需要 666,則在不手動執行「chmod a+x file」的情況下無法將其變為 755。

另外,g+s,設定群組suid的作用是設定所屬群組,而不是位元權限。 Windows 在這方面(ACL)要細粒度得多,但有檔案系統擴充可以將 ACL 權限新增至 Linux 檔案系統。

相關內容