回答:
デフォルトのマスク0666を想定します umask
。0022は、新しいマスクを0644(0666-0022 = 0644)にします。これは、グループおよび他のユーザーが読み取り(書き込みまたは実行なし)権限を持っていることを意味します。
「余分な」数字(最初の数字= 0)は、特別なモードがないことを指定します。
モードが数字で始まる場合、8進数として解釈されます。それ以外の場合は、記号であることが意図されます。
0は数字で、1(スティッキービット)または6(SGID)です。などのコマンドは、ユーザーおよびグループに読み取りおよび書き込み権限を追加する場所chmod
など、他の方法で呼び出すことができますchmod ug+rw mydir
。この場合のモード(ug + rw)は数字で始まらないため、8進数としてではなく、記号として解釈されることに注意してください。
シンボリックについてはen.wikipedia.org/wiki/Chmod#Symbolic_examplesを、特殊モードについてはwww.lifeaftercoffee.com/2007/03/20/special-permission-modes-in-linux-and-unix/を参照してください。
で最初のビットのマスクを解除することはわかりませんumask
が、技術的にはできます。ほとんど常にゼロとみなされる理由を説明します。
マスクの最初の桁は、所有者/グループ/その他のモデルにあまりきれいに適合しない特別な許可を扱います。ファイル許可に4桁が指定されている場合、最初の数字はこれらの特別な値を参照します。
4000 = SUID
2000 = SGID
1000 = sticky bit
set-user-IDの略であるSUIDビットにより、実行可能プログラムは所有者の有効なユーザーID(uid)で実行されます。つまり、誰が実行しても、プログラムは所有者の権利で実行されます。これは、root権限を必要とすることを行うプログラムでよく見られますが、通常のユーザーが実行することを意図しています:passwd
そのような例の1つです。
set-group-IDの略であるSGIDビットは非常に似ていますが、所有者の有効なグループ ID(gid)で実行されます。
スティッキービットはもう少し複雑です。さらに詳しい情報が必要な場合は、のマンページをご覧くださいsticky
。
これらのビットはディレクトリでも使用できますが、その意味は変わります。
umask
デフォルトでこれらの追加ビットのいずれかを有効にできるように実際に設定できるとは思わないが、おそらくとにかくそうすることは決してないだろう。
chmod 6777 dropbox
また、方法によって、そして。chmod ug+s
。)
0666-0022
、そう0666 & ~0022
です。
man 2 umask
(対応するシステムコール)によると、「のファイル許可ビットのみmask
が使用されます」。でbash
、umask 1000は「8進数が範囲外」というエラーを生成します。なぜ余分な0なのでしょうか?数字が8進数であることを示すだけだと思います。