私は、ZFS ファイル システムでバックアップされた CIFS 共有 (「ライブラリ」と呼ばれる) を備えた FreeNAS (FreeBSD) システムを持っています。共有は、FreeNAS GUI に従って「Windows / Mac」ACL を使用するように設定されていますが、これは NFSv4 ACL を意味するものと思われます。
基本的な ACL は次のようになります。
nas# getfacl /mnt/big/library/test
# file: /mnt/big/library/test
# owner: DOMAIN\administrator
# group: DOMAIN\domain admins
owner@:rwxpDdaARWcCo-:fd----:allow
group@:rwxpDdaARWcCo-:fd----:allow
everyone@:r-x---a-R-c---:fd----:allow
Windows 7 GUI では、共有のルートから継承された「DOMAIN\administrator」と「DOMAIN\Domain Admins」の「フル コントロール」と「Everyone」の「読み取りと実行」が表示されます。Windows は、所有者を「管理者」として正しく認識します。
関連していると思われる 2 つの問題が発生しています。
まず、既存のオブジェクト (ファイルまたはディレクトリ) の ACE を変更または作成すると、Windows はそのowner@
ACE を別の ACE に置き換えgroup:DOMAIN\administrator
、追加する場合は、group:DOMAIN\joe
そのユーザーのグループ ACE を作成します。ユーザーがグループであると認識されることは (機能する限り) あまり気になりませんが、所有者 ACE を置き換えるのは面倒です。オブジェクトの所有者を変更しても、以前の所有者の ACE が引き続き存在するためです。
2 つ目の厄介な点は、新しいオブジェクトを作成するときに ACL が次のようになることです。
nas2# getfacl /mnt/big/library/test/New\ folder/
# file: /mnt/big/library/test/New folder/
# owner: DOMAIN\joe
# group: DOMAIN\domain users
owner@:rwxpDdaARWcCo-:fd----:allow
group@:rwxpDdaARWcCo-:fd----:allow
everyone@:r-x---a-R-c---:fd----:allow
ACE は正しく継承されているようですが、親ディレクトリの所有者またはグループは保持されていません。親ディレクトリのプロパティを使用して作成する方法はありますか?
を見てsetfacl マニュアルページそれは次のように述べています。
-d The operations apply to the default ACL entries instead of access
ACL entries. Currently only directories may have default ACL's.
This option is not applicable to NFSv4 ACLs.
これは、NFSv4 ACL がデフォルトの ACE をサポートしていないことを意味しており、これが 2 番目の問題を解決するために必要と思われるものであると思われます。これが正しいかどうか、誰か知っていますか?
答え1
私はこのことについてあまり詳しくは触れていませんし、ひどく間違っている可能性もありますが、説明できる点をいくつか挙げます。
NFSv4 ACLも同様ですが全然Windows/CIFS/NTFS ACL など。
たとえば、Windows ACL 形式では、「ユーザー」または「グループ」または「特別な」SID がまったく区別されません。NAS は Windows システムにどのようなアカウントがあるかを認識していないため、どの SID がユーザーで、どの SID がグループであるかを判別できず、推測する必要があります。
しかし、NFSv4 ACLはPOSIXスタイルの「デフォルトACE」をサポートしていませんが、するWindows/CIFS スタイルの「継承可能な」ACE をサポートします。つまり、各エントリは継承可能でも、そうでなくてもかまいません。
FreeBSDでは
getfacl
では、 「ファイルによる継承可能」および「ディレクトリによる継承可能」に対応するf
およびフラグを確認できます。d
また、「継承のみ」フラグもあります
i
。これは、実質的には POSIX ACL の「デフォルト」ACE とまったく同じです。つまり、ACE は継承されるだけで、ディレクトリ自体には使用されません。ファイルを作成するときは、いつも作成したユーザーが所有します。継承できません。
CIFS サーバーが Windows Server を実行している場合は、組み込みの「Administrators」グループをデフォルトのファイル所有者にするオプションがあります (ここでも、所有者はユーザーまたはグループのいずれかになり、「グループ所有権」がないことに注意してください)。