「こうなるんだな」と答えが出てくると思いましたが、もし間違っているのではないか尋ねなければならないという気がしました。
私のアカウントのデフォルトのumaskはです0077
。私はwheel
グループに属しています。
次の ACL を含むディレクトリがあります。
# file: .
# owner: root
# group: wheel
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:wheel:rwx
default:mask::rwx
default:other::r-x
上記のACLに基づいてファイルを生成し、権限を正しく設定しました。
$ touch z
$ ls -al
drwxrwsr-x+ 2 root wheel 4,096 Aug 7 12:36 .
drwxr-xr-x. 7 root root 4,096 Aug 6 17:31 ..
-rw-rw-r--+ 1 ehymowitz wheel 0 Aug 7 12:36 z
これでこれが実行可能ファイルであると確信しているので、権限を変更しました。今回は本当です。いいえACLの後にはumaskに従います。
$ chmod +x z
$ ls -al
drwxrwsr-x+ 2 root wheel 4,096 Aug 7 12:36 .
drwxr-xr-x. 7 root root 4,096 Aug 6 17:31 ..
-rwxrw-r--+ 1 ehymowitz wheel 0 Aug 7 12:36 z
a+x
これを行うには指定する必要があります。
$ chmod a+x z
$ ls -al
drwxrwsr-x+ 2 root wheel 4,096 Aug 7 12:36 .
drwxr-xr-x. 7 root root 4,096 Aug 6 17:31 ..
-rwxrwxr-x+ 1 ehymowitz wheel 0 Aug 7 12:36 z
touch
なぜACLに基づいてファイルを生成するのか理解できないようですが、chmod
権限の調整のためにACLを無視します。
ベストアンサー1
chmodの明示的な機能
man chmod
ugoa 文字の組み合わせは、ファイルへのユーザーのアクセス権の変更を制御します。ファイルを所有しているユーザー(u)、ファイルグループの他のユーザー(g)、ファイルグループに属していない他のユーザー(o)、またはすべてのユーザー(1人)。これが与えられなければ、(a)が与えられたのと同じ効果がありますが、umaskに設定されたビットは影響を受けません。
ACLに関するいくつかの関連考えを見るために、有益な答えが見つかりました。ファイル権限を設定するシステムコールの正確な詳細を表示できます。 (ありがとうございましたslm!)
しかし、使い方を詳しく紹介することは必ずしも良いわけではありません。 * nix権限は、デフォルトのACL(または既存のset-GID)を使用し始めると本当に奇妙になります。現時点では、umask は希望する一貫した動作をサポートしていないという制限があります。systemdを使用するマルチユーザーワークステーションオペレーティングシステムで(また、udisksは無効な許可ビットでFATファイルシステムをマウントします。)
デフォルトのACLは、WindowsワークステーションのUnixファイルサーバーで使用できます。場合によっては、ハッキングされた Samba 構成を使用して効果的にumask をオーバーライドします。もちろん、LinuxはSambaにアクセスできるので、このoverride hack^W機能の利点を享受できます。 FUSEファイルシステム「bindfs」を使用して、Linux上で同じハッキングを構成できます。
(つまり、mv
Linuxはマウントされた同じファイルシステム内のフォルダ間で異なるデフォルトのACLを尊重しません。ノーチラス(GNOMEファイル)も移動時にデフォルトのACLを実装しません。Windowsエクスプローラも同様です。