デフォルトのファイルとディレクトリのアクセス許可を設定するためにumask値を使用する方法に関するホームページがありますが、次の問題が発生します。
umask = 0541がある場合
- 0666 - 0541 = 0125、ファイル権限:
---x-w-r-x
- 0777 - 0541 = 0236、ディレクトリ権限:
d-w--wxrw-
しかし、Linux端末の実際の結果は次のとおりです。
d-w--wxrw
ディレクトリ用--w--w-rw-
ファイルについて説明してください!
答え1
umaskは減算ではなく、umaskに基づく論理AND演算であることに注意してください。
バイナリ権限を検討してください。
したがって、0666のライセンスは次のようになります。
110 110 110
今umask 0541
101 100 001
結果を計算するためにumaskを無効にします。
010 011 110
その後、許可を受けてAND演算を実行します。
だから
110 110 110 AND
010 011 110
=== === ===
010 010 110
これは-w--w-rw-にマップされます。
答え2
こう考えてみてください。デフォルトの権限666がある場合は、r+w
ユーザー、グループ、および他のユーザーに対する権限のみがあり、umaskを介して541
r + x、r、x権限を削除したい場合です。
ユーザーの場合:
By default you can read+write and by umask you want to remove read+executable
permissions, but it will never happen because initially file has no executable
permissions. So only read permission will be removed.
グループの場合:
read permission will removed
他の人のために:
There is no executable permission in the file, so there will be no change.
ディレクトリにも同じ概念が適用されます。