質問: ファイル作成時にデフォルトの(継承しない)acl権限を設定するにはどうすればよいですか? これはfreenasボックス(freenas-9.3-stable-201506292130)付きです。debianベースのlinuxでは、通常、ファイル/ディレクトリに対するデフォルトのパーミッションは644/755です(現在は664/775?)。私が理解しているように、これは、umaskが022または002に設定されているために発生します。これは、新しいファイルを作成するためのデフォルトのアクセス許可を管理します。ただし、freenas(windows aclスタイルのパーミッション)では、デフォルトのファイル作成は単にそれを含むディレクトリのパーミッションを継承します。 setfaclのmanページからわかります setfacl(1)のマニュアルページ 継承フラグがあること。ただし、継承ではなくデフォルトを探しています。これを変更して、作成動作を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