C (Linux) でファイルを作成するときに、書き込み権限に加えて実行権限が必要なのはなぜですか?

C (Linux) でファイルを作成するときに、書き込み権限に加えて実行権限が必要なのはなぜですか?

Linux で C ソース コードからファイルを作成しようとしています。ddファイルから読み取り、ファイルを作成してファイルに書き込むコマンドを使用しています。ターゲット ディレクトリ (ファイルが作成される場所) に対する実行権限がない場合 (書き込み権限はあります)、ファイルを作成できません。書き込み権限と実行権限の両方がある場合は、ファイルを作成できます。

その理由は何でしょうか?

答え1

設定されている場合、r、w、x モード属性はファイルとディレクトリに次の効果をもたらします。

  • r 属性(読み取り権限):

ファイル:ファイルを開いたそして読む

ディレクトリ:ディレクトリの内容を一覧表示します。含まれるファイルやディレクトリに関する情報を取得するには、実行属性も設定する必要があります。

  • w 属性(書き込み権限):

ファイル:ファイルに書き込みや切り捨てを許可しますが、この属性はファイルの名前変更や削除は許可されませんファイルの削除や名前の変更ができるかどうかはディレクトリ属性による

ディレクトリ:ディレクトリ内のファイルの作成、削除、名前の変更を可能にします実行属性も設定されている場合

  • x 属性(実行権限):

ファイル:ファイルをプログラムとして扱い、実行できるようにします。スクリプト言語で書かれたプログラムファイル実行するには読み取り可能に設定する必要があります

ディレクトリ:ディレクトリを入力したたとえば、cd ディレクトリなど。

参考資料: Linux® コマンドライン William E. Shotts, Jr.

この本を読むか、このリンクからダウンロードできる PDF 版を読むことをお勧めします。http://sourceforge.net/projects/linuxcommand/files/TLCL/13.07/TLCL-13.07.pdf/ダウンロード

答え2

ディレクトリの実行ビットにより、ディレクトリに入る/トラバースする可能性が与えられます。したがって、あなたのケースでは、ファイルを作成することが前提条件となります (そうでない場合は、ディレクトリに入ることができます)。

関連情報