2017-10-29 156 views
-1

在腳本中,我應該先創建一個文件,使用chmod分配權限(例 - 首先使用touch命令創建一個文件,然後使用chmod命令對文件進行編輯的權限)「OR」應該在我創建文件時使用UMASK掩蓋權限嗎?另外,請解釋選擇一個優先還是另一個優缺點?CHMOD VS UMASK - Linux文件權限

注:該文件並不需要執行。

+0

這聽起來很像一個家庭作業。請顯示您的腳本,以確保問題仍然在這裏。否則,文件系統權限和解釋競爭條件以及toctou是無關緊要的,最好在[Super User](http://superuser.com/)或[Unix&Linux Stack Exchange](http://unix.stackexchange。 COM /)。 – jww

回答

1

與大多數事情一樣,這取決於比你給了:-)

然而更多的信息,它通常是一個好主意,做事情一個封閉的方式然後打開它們,而不是其他方式。這是基本的「安全101」。例如,假設你正在爲用戶創建一個文件,並且用戶愚蠢地選擇了一個零(有效地創建的所有文件都將具有對每個人的完全權限)umask

在這種情況下,該文件是完全開放的,任何人創建和chmod階段之間變化,而你可以這段時間縮短,你不能真正刪除它完全。

對於我們之間真正的偏執狂來說,最好是儘可能以封閉的方式創建文件(可能只是爲所有者提供rw),做任何你必須做的事來創建該文件的內容,然後使用chmod打開它需要的任何狀態,如:

(umask 177 ; create_file myfile.txt ; chmod 644 myfile.txt) 
0

簡單說 - 沒關係。在大多數情況下,方法取決於你的需要。

如果您需要對整個腳本邏輯具有相同的文件權限,我寧願將其設置在腳本的開頭,只是創建文件而不是創建並運行chmod命令。但是,您可以在腳本運行結束時立即設置文件許可權chmod 0XXX -R /path/to/folder

0

對於特定用戶,您應該始終具有UMASK,因爲您不希望每次處理設置權限或應用程序創建文件。如果你想使用CHMOD,你可以進一步保護/釋放任何特定的文件(這些情況將非常罕見)。除非你正在創建的文件需要特別保護/訪問,否則你應該有一個UMASK爲其權限工作。

  • 爲正在運行腳本的應用程序創建單獨的用戶和指定目錄。
  • 設置它的相應的UMASK。
  • 指定額外的權限,如果你需要它
+0

爲什麼我不能只使用chmod做到這一點,即不使用UMASK + CHMOD的,只是使用CHMOD?這一切都是以腳本完成的,所以這不會重複,對吧? –

+0

大哥就像我說的,這將取決於你的文件,你是否應該使用chmod與否。無論如何,您應該始終擁有一個UMASK設置,讓您使用該腳本運行的用戶。您還需要創建許多其他腳本和文件,因此UMASK只能提供幫助 –