ディレクトリに作成されたすべてのファイルはbobの所有者である必要があります。

ディレクトリに作成されたすべてのファイルはbobの所有者である必要があります。

bobが所有するディレクトリ内のすべてのファイルを探しています。新しいファイルにグループセットをインポートするためにchmod g + sを使用できることを知っていますが、ユーザーにとって同様のことはできないようです。

これが私が思いついたものです。それとも別の方法がありますか?

[root@testmachine ~]# mkdir /testing.d
[root@testmachine ~]# setfacl -m default:u:bob:rwx,default:g:testgroup:rwx /testing.d/
[root@testmachine ~]# touch /testing.d/someone
[root@testmachine ~]# getfacl /testing.d/someone 
getfacl: Removing leading '/' from absolute path names
# file: testing.d/someone
# owner: root
# group: root
user::rw-
user:bob:rwx            #effective:rw-
group::r-x          #effective:r--
group:testgroup:rwx     #effective:rw-
mask::rw-
other::r--

[root@testmachine ~]# getfacl /testing.d/
getfacl: Removing leading '/' from absolute path names
# file: testing.d/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:bob:rwx
default:group::r-x
default:group:testgroup:rwx
default:mask::rwx
default:other::r-x
[root@testmachine ~]# 

ありがとう

答え1

通常、特定のユーザーが所有するディレクトリにファイルを作成することはできません(最初にそのユーザーがファイルに書き込まない限り)。その理由は(Linuxを含むほとんどのUnixバリアントでは)文書開示の禁止

ただし、異なるファイルの所有権を提供するファイルシステムを使用すると、この効果が得られます。ここで1つの可能性はファイルシステムバインディング、所有権と権限を変更できるさまざまな場所のファイルシステムビューを提供します。このオプション(に必要)bindfsなしで非rootユーザーとして実行すると、binfsビューで生成されたファイルはbinfsファイルシステムを提供するユーザーによって所有されます。--no-allow-otheruser_allow_other/etc/fuse.conf

Bobがファイルにアクセスできる必要があるが、Bobがファイルの所有権を持つ必要はない場合は、質問に記載されている方法でACLを使用するのが最善の方法です。

関連情報