為什麼在 C (Linux) 中建立檔案需要執行權限和寫入權限?

為什麼在 C (Linux) 中建立檔案需要執行權限和寫入權限?

我正在嘗試在 Linux 上從 C 原始碼建立一個檔案。我正在使用該dd命令從文件中讀取並通過創建文件將其寫入文件。如果我沒有目標目錄(將在其中建立文件的位置)的執行權限(有寫入權限),則無法建立該文件。如果我同時具有寫入和執行權限,則可以建立文件。

這是什麼原因呢?

答案1

設定後,r、w 和 x 模式屬性對檔案和目錄有以下影響:

  • r 屬性(讀取權限):

文件:允許一個文件打開

目錄:允許列出目錄的內容。要檢索有關包含文件或目錄的任何信息,還必須設定執行屬性。

  • w 屬性(寫入權限):

文件:允許寫入或截斷文件,但是此屬性不允許重新命名或刪除文件。確定刪除或重新命名檔案的能力按目錄屬性

目錄:允許建立、刪除和重新命名目錄中的文件如果還設定了執行屬性

  • x 屬性(執行權限):

文件:允許將文件視為程式並執行。用腳本語言編寫的程式文件也必須設定為可讀才能執行

目錄:允許目錄進入,例如cd目錄。

參考:Linux® 命令列 William E. Shots, Jr.

我建議您閱讀這本書或 pdf 版本,您可以從以下鏈接下載:http://sourceforge.net/projects/linuxcommand/files/TLCL/13.07/TLCL-13.07.pdf/download

答案2

目錄上的執行位使您可以進入/遍歷它。因此,在您的情況下,建立一個檔案(否則您可以輸入它)也是先決條件。

相關內容