ディレクトリ内のファイルのデフォルトのユーザー名とグループの設定

ディレクトリ内のファイルのデフォルトのユーザー名とグループの設定

使用これ便利な投稿フォルダにデフォルトのグループとファイル権限を設定できます。

デフォルトの所有者(チームリードuid 1234)の設定に問題があります。

setfacl -d -m g::rwx /my/test/folder
setfacl -d -m o::rx /my/test/folder

getfacl /my/test/folder

# file: /my/test/folder
# owner: teamlead
# group: web_prod
# flags: -s-
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

その後すぐに:

[mary@boxen]# touch /my/test/folder/somefile
[mary@boxen]# ll /my/test/folder/somefile
-rw-rw-r--. 1 mary web_prod 0 Nov  6 08:58 somefile

したがって、正しいグループが割り当てられますが、新しいファイルにはそのファイルを作成したユーザーの所有権があります。新しく作成されたファイルにteamlead:web_prodの所有者/グループを含めたいと思います。

setfaclデフォルトのユーザー設定にも効果があるようです。既存のフォルダacl構成を使用する(上記):

[mary@boxen]# setfacl -d -m u:1234:rwx /my/test/folder

次に、別のユーザーとしてファイルを生成します。 teamlead:web_prodの所有権を持ちたいです。

[mary@boxen]# touch /my/test/folder/anotherfile
[mary@boxen]# ll /my/test/folder/anotherfile
-rw-rw-r--+ 1 mary web_prod 0 Nov  6 08:58 somefile

新しいファイルには、uid 1234(チームリーダー)ではなく、そのファイルを作成した所有者の所有権があります。

私が追求することは可能ですか、それともこの問題にアプローチするのが間違っていますか?

ベストアンサー1

setfaclを使用すると、新しく作成されたファイルのデフォルト権限を設定できますが、デフォルトの所有者/グループは設定できません。

特定のユーザーが所有する新しいファイルを作成するには、ディレクトリのsetgidビットのように動作するsetuidビットが必要です。残念ながら、これは実装されていません。

setfaclを使用すると、ほとんどの場合、ほぼ同じことができます。たとえば、ACLを設定できますdefault:user:teamlead:rwx(例setfacl -d -m u:teamlead:rwx foo:)。これにより、他の人がファイルを所有していても、指定したユーザーが新しいファイルに書き込むことができます。

おすすめ記事