ファイル権限はどのように計算されますか?

ファイル権限はどのように計算されますか?

を使用してchmodファイルの権限を設定できますが、..親()ディレクトリに競合する権限がある場合はどうなりますか?

このような方法で新しいファイルを生成する場合、初期touch権限はどのように計算されますか?権限はから継承されますか..

権限フラグを削除すると、ディレクトリから何もできないのはなぜですかexecutable

$ mkdir temp;
$ chmod -x temp;
$ touch temp/a;
$ ls temp;
touch: cannot touch `temp/a': Permission denied

ベストアンサー1

  1. 厳密に言えば、UNIXには「権限の衝突」はありません。ファイルシステムエントリ(ディレクトリ、ファイルなど)へのアクセス権によって、そのオブジェクトに対して実行できる操作と実行できない操作が決まります。他のファイルシステム項目の権限は関係ありません。パスのすべての親ディレクトリにある「x」ビットを除くファイルとして(最大/) - 3を参照してください。

  2. 新しく作成されたファイルに対するデフォルトの権限は、mode生成プログラム(またはシステムコールの引数)と現在のプロセスで許可されている権限によって異なります。具体的には、「umask」に設定されているすべてのビット(1)は、新しく作成されたファイル権限でCと同様の表記にリセット(0)されます。読んで(見つけて)詳しく学んでください。opencreatumaskfile_permissions = open_mode & ! umaskman 2 creatO_CREATman umask

  3. ディレクトリの「x」(実行可能)ビットは、次を制御します。横断ディレクトリ:ディレクトリを参照すると、cdディレクトリに入ってその中に含まれるファイルにアクセスできることを意味します。ディレクトリの内容を一覧表示する機能は、「r」ビットによって制御されます。

追加資料:

おすすめ記事