umaskが実行ビットを設定しないのはなぜですか? [コピー]

umaskが実行ビットを設定しないのはなぜですか? [コピー]

私は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の動作を説明できません。

おすすめ記事