私はLinuxに初めて触れました。いくつかの命令を練習してみました。私の質問は、いつ別のumaskを使用して別のファイルを生成するかについてです。たとえば、
umask 222
私が理解したところによると、777 - 222 = 555に等しいので、新しいファイル(「新しいファイル」)、その後新しいファイル権限は次のようにする必要がありますr-xr-x-r-x
(それとも私が間違っていますか?)。
どの:「新しいファイル」権限を使用して作成されますr--r--r--
。
私のumask
価値/etc/profile
は次のとおりです
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
私のuidは1002です。
注:記録のためにすべてのumaskの質問と文書を読みましman
たが、まだ理解できません。
答え1
ほとんどのプログラムは実行ビットセット(0666
== -rw-rw-rw-
)なしでファイルを生成します。実行ビットは、実行ファイルのインストール中にコンパイラによってのみ設定されるか、ユーザーが手動で設定します。
次に、umaskを適用して実際の権限を確認します。
create 0666 rw-rw-rw-
umask 0222 r-xr-xr-x
effective 0444 r--r--r--
実際には減算ではなく、2の補数のビットANDです。
したがって0777
- 0222
= が必要で0555
、
OCTAL BINARY HUMAN-READABLE
0666 0110110110 -rw-rw-rw-
& 0555 0101101101 -r-xr-xr-x
0444 0100100100 -r--r--r--
また、見ることができますACLの動作を説明できません。
答え2
Wikiに良い説明があります。マスク。ビット 0 は生成プロセスで指定したすべての操作が進行することを意味し、1 は発生しないことを意味します。
したがって、「222」は、ユーザ、グループ、および他のユーザに対する書き込み権限を無視するが、読み出しおよび実行ビットは維持することを意味する。
あなたの例で生成された新しいファイルには実行ビットが設定されていません(通常、新しいファイルを作成するときに実行ファイルにはなりません)。r--r--r--
これがr-xr-xr-x
。