ACLを使用してユーザーにディレクトリとすべてのコンテンツに対する制御権限を付与する方法

ACLを使用してユーザーにディレクトリとすべてのコンテンツに対する制御権限を付与する方法

2人のユーザー、FooとBar。 Fooは、BarがFooのホームディレクトリにあるプロジェクトに取り組むことを望んでいます。

[foo]$ mkdir project
[foo]$ # Set defaults
[foo]$ setfacl -m d:u::rwx,d:g::rwx,d:o::--- project
[foo]$ # Set defaults overrides for bar
[foo]$ setfacl -m d:u:bar:rwx project
[foo]$ # Set actual acls for project dir
[foo]$ set facl -m u::rwx,g::rwx,o::--- project

その後、fooは新しいプロジェクトディレクトリにファイルとディレクトリを作成し始めます。

barこれで、プロジェクトディレクトリにアクセスする権限があることを確認したら(つまり、すべての親ディレクトリに対する適切な権限がある)、これらすべてのファイルとディレクトリにbarアクセスでき、プロジェクトからACLを継承する一意のファイルとディレクトリを作成できます。できます。礼拝の規則。

ただし、これはfooプロジェクトフォルダに次の内容が含まれていることを意味します。所有者bar、これはfooにアクセス権がないことを意味できます。例えば

[bar]$ # feeling annoying...
[bar]$ cd /path/to/project
[bar]$ mkdir -p -m 700 ha/ha
[bar]$ dd if=/dev/zero of=ha/ha/evil bs=1G count=10

これで、fooはプロジェクトフォルダへのbarのアクセスを取り消すことができますが、fooがアクセスまたは削除できない10GBのファイルが残ります。

fooが特定のディレクトリに作成されたすべてのファイル/ディレクトリに対して常にフルアクセス権を持つようにする方法はありますか?

答え1

廃止された1993年のACL提案が1997年に撤回されたため、barはfooが物事を制御するのを防ぐ方法で常に権限を変更できるため、これを行うことはできません。このACL提案は、ユーザーが最初から満足していなかったため、決して標準にはなりませんでした。

NTFSから派生し、現在NFSv4定義で標準化されている最新のACL標準をサポートするZFSなどの最新のファイルシステムを使用することをお勧めします。 NFSv4 ACLを使用すると、fooだけがACL定義を制御できるようにプライベートACLを設定でき、自動的に伝播されるディレクトリのデフォルトACLを使用すると、barへのアクセスを許可するように必要な権限を設定できます。ただし、ACL 権限は変更されません。 chmod のマニュアルページを参照してください。http://schillix.sourceforge.net/man/man1/chmod.1.htmlNFSv4 ACLに関する情報。

関連情報