Linux(つまりCentOS 6)で継承されたアクセス許可を強制することに関して質問/混乱があります
セットアップ:
1 xCentOSファイルサーバー
2 x CentOSNFSクライアント
多くのxWindowsSambaクライアント
ファイル共有は/ srv/shareであり、SambaとNFSの両方のローカル権限で共有されます。h
drwxrwx---. 2 root sharegroup 4.0K Oct 22 14:41 share
ActiveDirectoryを介して統合されたすべてのUID/GID、すべてのユーザーのプライマリグループは「sharegroup」です。
次のようにfstabにマウントされたNFSクライアント:
tst-lnx03:/srv/share /mnt/share nfs defaults 0 0
UNCパスを介したWindowsボックス:
\\tst-lnx03\share
私が欲しいもの:
NFSまたはSambaのどちらを経由したかに関係なく、/ srv/shareフォルダーに書き込まれた/作成されたものはすべて770ルート共有グループです。
私が試したこと:
ACLを使用してみました:
setfacl -m d:u:root:rwx,d:g:"sharegroup":rwx,d:other:--- share
結果:
ls -lah
-rwxrwx---+ 1 testuser11 sharegroup 0 Oct 22 14:25 tu12-smb-win
-rw-rw----+ 1 testuser2 sharegroup 0 Oct 22 14:23 tu2-local-local
-rw-r-----+ 1 testuser4 sharegroup 0 Oct 22 14:24 tu4-NFS-lnx04
スティッキービットを使ってみました:
chmod 2770 share
結果:
ls -lah
-rwxr--r-- 1 testuser11 k8 sharegroup 0 Oct 22 14:38 tu12-smb-win
-rw-r--r-- 1 testuser2 k8 sharegroup 0 Oct 22 14:38 tu2-local-local
-rw-r--r-- 1 testuser4 k8 sharegroup 0 Oct 22 14:38 tu4-NFS-lnx04
混乱
Setfaclが勝者のように見えますが、出力に少し混乱しています。スティッキービットバージョンがランダムな他の読み取りを追加し、書き込みオフグループを削除するのはなぜですか?
デフォルトのumaskが0022であるため、NFSで作成されたファイルが異なると考えることができますが、他の変更はできないと思います。作成されたウィンドウとローカルに作成されたファイルも許可に一致することを期待していました。
誰かがそれぞれの場合に何が起こっているのか説明できますか?私は少し当惑しています。あなたが私からもっと何かを必要とするならば、ただ叫んでください、そして、私はそれを上げます。
だからあなたはしました
setfacl -m d:u:root:rwx,d:g:"sharegroup":rwx,d:other:--- share
setfacl d:
(「デフォルトACL」と呼ばれます)を使用して行うことは、所有権には影響せず、アクセシビリティのみに影響します。したがって、「誰がアクセスできるか」は決定できますが、「誰が所有するか」は決定できません。テストファイルに、所有しているユーザーとrootのrwxアクセスを許可しました。所有グループおよび「共有グループ」のrwxアクセス。ただし、所有ユーザーと所有グループは、setfaclを使用しない場合とまったく同じ方法で決定されました。
Setfacl'dファイルでは、umaskが考慮されなくなったため、ファイルのパーミッションは予期しないものです。各ファイルには、単にマスクと呼ばれる「独自のumask」があります( getfacl
を参照)。
そして、あなたはしました
chmod 2770 share
また違う。 2770はスティッキーではなく、これはsetgidビットです。 Stickyは1770年でした。setgidは新しいファイルの所有グループを変更し、それらのアクセス許可にはまったく影響しませんでした。パーミッションは、通常どおり、umask( umask
を参照)と、ファイルを作成するアプリケーションによって提案されたモードを考慮に入れます。
私はあなたが必要とするものがあなたが持っているツールでどのように適切に実行されることができるかを知りません。 Linuxには「ディレクトリのsetuid」は実装されていません。