これはfreenasボックス(FreeNAS-9.3-STABLE-201506292130)付きです。
DebianベースのLinuxでは、通常、ファイル/ディレクトリに対するデフォルトのパーミッションは644/755です(現在は664/775?)。私が理解しているように、これは、umaskが022または002に設定されているために発生します。これは、新しいファイルを作成するためのデフォルトのアクセス許可を管理します。ただし、freenas(windows aclスタイルのパーミッション)では、デフォルトのファイル作成は単にそれを含むディレクトリのパーミッションを継承します。 setfaclのmanページからわかります
継承フラグがあること。ただし、継承ではなくデフォルトを探しています。これを変更して、作成動作をDebianベースのシステムで行われる動作に近づける方法はありますか?つまり、ファイルを644、ディレクトリを755にします。ディレクトリがアクセス許可として使用されるため、新しく作成されたファイルが755のアクセス許可を取得するだけでは不十分です。
私は何かを機能させるために頭を悩ませてきました。私は現在NFSv4ACLを使用しており、POSIX ACLを使用しようとすると「ブランドの不一致」エラーが発生するため、windows-style、freenas、freebsd、NFSv4、setfacl/getfaclコマンドでできることを使用し続けています。そして、私が試したものから上記の動作を得ることができませんでした。
$ mkdir test
$ cd test
$ ls -lat
drwxr-xr-x+ 2 user user 2 Aug 1 12:40 .
drwxr-xr-x+ 67 user user 67 Aug 1 12:40 ..
$ touch testfile
$ ls -lat
drwxr-xr-x+ 2 user user 3 Aug 1 12:40 .
-rwxr-xr-x+ 1 user user 0 Aug 1 12:40 testfile
drwxr-xr-x+ 67 user user 67 Aug 1 12:40 ..
# file: .
# owner: user
# group: user
owner@:rwxpDdaARWcCos:fd----:allow
group@:r-x---a-R-c--s:fd----:allow
everyone@:r-x---a-R-c--s:fd----:allow
$ getfacl testfile
# file: testfile
# owner: user
# group: user
owner@:rwxpDdaARWcCos:------:allow
group@:r-x---a-R-c--s:------:allow
everyone@:r-x---a-R-c--s:------:allow
NFSv4ACLには「デフォルトACL」はありません。ただし、何を何によって継承するかを正確に制御できます。特に、ファイルに継承されるACEと、ディレクトリに継承できる別のセットを追加できます。このように、最初の3つはディレクトリに適用され、次の3つはファイルに適用されます。ディレクトリは両方を継承しますが、「file」エントリには「i」(inherit_only)フラグが設定されるため、ディレクトリ自体には適用されません。ディレクトリ内のファイルによってのみ継承されることに注意してください。したがって、これは親ディレクトリのACLです。
owner@:rwxp----------:-di----:allow
group@:r-x-----------:-di----:allow
everyone@:r-x-----------:-di----:allow
owner@:rw-p----------:f-i----:allow
group@:r-------------:f-i----:allow
everyone@:r-------------:f-i----:allow
owner@:rwxp--aARWcCos:-------:allow
group@:r-x---a-R-c--s:-------:allow
everyone@:r-x---a-R-c--s:-------:allow
これはファイルによって継承されるものです(「I」フラグはエントリが継承されたことを意味します。FreeBSD11-CURRENTより前には存在しませんでした):
owner@:rw-p----------:------I:allow
group@:r-------------:------I:allow
everyone@:r-------------:------I:allow
これはディレクトリによって継承されるものです(「i」フラグは「inherit_only」を意味します-ACEは存在しますが、実際のアクセス許可には影響しません。継承されるだけです):
owner@:rwxp----------:-d----I:allow
group@:r-x-----------:-d----I:allow
everyone@:r-x-----------:-d----I:allow
owner@:rw-p----------:f-i---I:allow
group@:r-------------:f-i---I:allow
everyone@:r-------------:f-i---I:allow