現在のファイル権限は次のようになります。
$ ls -l file
-rwxrwxr-x 1 chiranjitd chiranjitd 0 Oct 30 14:52 file
ここで、次を使用して書き込み権限を付与してみますchmod
:
$ chmod +x+r+w file
その後、ファイルの権限は次のようになります。
$ ls -l file
-rwxrwxr-x 1 chiranjitd chiranjitd 0 Oct 30 14:52 file
書き込み権限が他の人に与えられていません。なぜこのようなことが起こるのでしょうか?
答え1
実行するとchmod +x+r+w file
、マスクされたビットを除いて、すべてのビットが設定されます。umask
おそらくumask
、(少なくとも)他のユーザーの書き込みビットをマスクするため、その+w
部分は他のユーザーに対して無視されることになります。
したがって、典型的なumask
022 の場合、chmod
権限を設定する対象を指定しないコマンドは、グループおよび他のユーザーの書き込みビットに対する指定された変更を無視することになります。
を無視してすべてのビットを設定するにはumask
、以下を指定する必要があります。誰が設定したい項目:
chmod a+rwx file
あるいはもっと明確に言えば、
chmod ugo+rwx file
ugo
(または、ユーザー、グループ、その他の適切なのサブセット)。
記号による権限の代わりに数値による権限を指定することも可能です。UNIX の権限とファイルの種類を理解する詳細については。
umask
マスクの動作は、次の場合にも適用されることに注意してください。クリアビットは、驚くべき結果を生み出す可能性があります。 は、chmod -w file
によって設定される書き込みビットのみをクリアしますchmod +w file
。 022 の典型的な例を続けると、これは、 がグループまたは他の書き込みビットに触れず、すでに設定されている場合は設定されたままにするumask
ことを意味します。 (GNU ' は、これについて警告します。)chmod -w
coreutils
chmod