目錄寫入權限

目錄寫入權限

假設我在 ~ 中建立了目錄(稱為 temp),並且在其中建立了一些檔案。現在,我的 umask 是 0002,但為了練習,我更改了 ~/temp/ 的權限:

chmod 222 temp

據我所知,擁有目錄的寫入權限意味著我無法打開它或讀取它的內容,但我應該能夠在其中添加文件(或刪除文件)。例如,我認為這會很好地工作:

touch temp/new_file.txt

但是,當我嘗試這樣做時,它只會拋出一個錯誤:

touch: cannot touch 'temp/new_file.txt': Permission denied

我不明白為什麼這不能按我預期的方式工作,所以我想知道當我只有寫權限時我可以對目錄做什麼,以及為什麼按照我嘗試的方式創建新文件不起作用?

(以上所有指令均在~中執行)

任何幫助表示讚賞!

答案1

目錄的權限工作方式不同,

這不是一個完美的解釋,但是,

根據 chmod ( man chmod) 的手冊頁:

字母 rwxXst 為受影響的使用者選擇檔案模式位元:讀取 (r)、寫 (w)、執行(或搜尋目錄)(x),僅當檔案是目錄或已具有某些使用者(X)的執行權限時才執行/搜索,設定執行時的使用者或群組ID(s),限制刪除標誌或黏性位元(t)。您可以指定字母 ugo 之一,而不是這些字母中的一個或多個:授予擁有該檔案的使用者的權限 (u)、授予屬於該檔案群組的其他使用者的權限 (g)、以及授予不屬於上述兩個類別的使用者的權限(o)。

這意味著要寫入目錄中的文件,您需要首先切換到目錄(執行權限)並建立一個檔案(寫入權限)

相關內容