
を使用してchmod
ファイルの権限を設定できますが、..
親()ディレクトリに競合する権限がある場合はどうなりますか?
このような方法で新しいファイルを生成する場合、初期touch
権限はどのように計算されますか?権限はから継承されますか..
?
権限フラグを削除すると、ディレクトリから何もできないのはなぜですかexecutable
?
$ mkdir temp;
$ chmod -x temp;
$ touch temp/a;
$ ls temp;
touch: cannot touch `temp/a': Permission denied
答え1
厳密に言えば、UNIXには「権限の衝突」はありません。ファイルシステムエントリ(ディレクトリ、ファイルなど)へのアクセス権によって、そのオブジェクトに対して実行できる操作と実行できない操作が決まります。他のファイルシステム項目の権限は関係ありません。パスのすべての親ディレクトリにある「x」ビットを除くファイルとして(最大
/
) - 3を参照してください。新しく作成されたファイルに対するデフォルトの権限は、
mode
生成プログラム(またはシステムコールの引数)と現在のプロセスで許可されている権限によって異なります。具体的には、「umask」に設定されているすべてのビット(1)は、新しく作成されたファイル権限でCと同様の表記にリセット(0)されます。読んで(見つけて)詳しく学んでください。open
creat
umask
file_permissions = open_mode & ! umask
man 2 creat
O_CREAT
man umask
ディレクトリの「x」(実行可能)ビットは、次を制御します。横断ディレクトリ:ディレクトリを参照すると、
cd
ディレクトリに入ってその中に含まれるファイルにアクセスできることを意味します。ディレクトリの内容を一覧表示する機能は、「r」ビットによって制御されます。
追加資料:
答え2
まず…Linuxでは、すべてがファイルです。そして私が言うすべては、フォルダ、マウス、キーボードなどすべてがファイルであることを意味します。
今、あなたの質問に答えてみましょう。
フォルダと埋め込みファイルとの間に競合はありません。読み取り権限のみを持つフォルダがあり、そのフォルダに書き込み権限を持つファイルがある場合は、そのファイルに書き込むことができます。ただし、そのフォルダにファイルを作成/削除することはできません。したがって、紛争について心配しないでください。フォルダの内容を読むこともできます(フォルダの一覧表示)。
デフォルトの権限は通常644です(つまり、rwはユーザー、rはグループなどを表します)。
ディレクトリの「実行可能」ビットは、ディレクトリを「開く」という意味です。つまり、-xaフォルダを使用すると、その内容がわからないため、そのフォルダでは何もできません。