ファイルが2人のユーザーに属しようとしています。どのように?ハードリンク障害

ファイルが2人のユーザーに属しようとしています。どのように?ハードリンク障害

両方のsetuidプログラムは設定ファイルを/usr/bin/bar共有します。構成ファイルには機密情報が含まれているため、スキーマにあります。プログラムは次から始まります(つまり、ユーザーとして/usr/bin/bazfoo0640bar:barバー、グループバーbaz:baz);ユーザーの変更はオプションではありません。グループを変更しても良い選択肢ではありません。

/etc/bar/foo単一の構成ファイルをとにハードリンクしたいと思います/etc/baz/foo。しかし、私が知っている限り、ファイルはまたはroot:barに属する必要があるため失敗しますroot:baz

barbaz考えられる解決策:メンバーが新しいbarグループを作成しますbazfoo属してくださいroot:barbaz

私にとって、これは非常に大胆な解決策のようです。foo2つのプログラム間で設定ファイルを共有するよりクリーンでクリーンな方法はありますか?

現在、私はこのファイルの2つの同じコピーを保持しています。これはうまくいきますが、明らかに間違っています。何が正しいか?

注:私はUnixコミュニティやsetgid(2)の経験がほとんどありません。

ベストアンサー1

2 つのグループの人々がファイルを読み取れるように、ACL を使用できます。

chgrp bar file
chmod 640 file
setfacl -m g:baz:r-- file

これで、ユーザーbarとグループの両方がbazファイルを読み取ることができます。

たとえば、これはモード640のbin:binが所有するファイルです。

$ ls -l foo
-rw-r-----+ 1 bin bin 5 Aug 17 12:19 foo

これは+、ACLが設定されたことを意味します。見てみましょう。

$ getfacl foo
# file: foo
# owner: bin
# group: bin
user::rw-
group::r--
group:sweh:r--
mask::r--
other::---

私たちはこの行を見ることができますgroup:sweh:r--。これは、グループの人々swehが読むことができることを意味します。

ねえ、それは私です!

$ id
uid=500(sweh) gid=500(sweh) groups=500(sweh)

はい、ファイルを読み取ることができます。

$ cat foo
data

おすすめ記事