2人のユーザーAliceとBobがあり、GROUPNAMEグループとフォルダがあるとしますfoo
。どちらのユーザーもGROUPNAMEのメンバーです(Linuxとext3を使用)。
ユーザーAliceとしてファイルを保存すると、foo
権限は次のようになります-rw-r--r-- Alice Alice
。しかし、特定のサブディレクトリに保存されているすべてのファイルに権限foo
(-rwxrwx--- Alice GROUPNAME
所有者Alice、GROUPNAMEなど)があるように実装することは可能ですか?
ベストアンサー1
可能であればACL(アクセス制御リスト)。
Linuxでは、使用しているファイルシステムがACLをサポートしていることを確認してください(ほとんどのUNIXファイルシステムはサポートしています)。 ACL をイネーブルにするには、マウントオプションを変更する必要があります。 ext2/ext3/ext4の場合2.6.39 以降、ACL はカーネルでデフォルトで有効になります。。以前のカーネルではマウントオプションを明示的に指定する必要があるため、再起動せずにACLを有効にするには、のエントリがacl
.Runと/etc/fstab
等しくなければなりません。また、一般的に呼ばれるパッケージに付属のACLコマンドラインツールもインストールします。/dev/sda1 / ext4 errors=remount-ro,acl 0 1
mount -o remount,acl /
getfacl
setfacl
acl
これでワンタイム設定が完了したら、ディレクトリのACLを変更してグループに書き込み権限を付与し、新しく作成されたファイルにこれらの権限を継承させます。 Linuxでは:
setfacl -d -m group:GROUPNAME:rwx /path/to/directory
setfacl -m group:GROUPNAME:rwx /path/to/directory
ACLがオプションでない場合は、ディレクトリをグループ所有にし、GROUPNAME
その権限を2775または2770に設定しますchmod g+rwxs /path/to/directory
。ここでこれが意味するのは、s
ディレクトリのsetgidビットです。これは、このディレクトリに作成されたファイルがディレクトリを所有するグループに属することを意味します。
また、AliceとBobの設定も設定する必要があります。マスクデフォルトでは、すべてのファイルグループを書き込み可能にします。ほとんどのシステムでは、デフォルトのumaskは022です。これは、ファイルがグループ固有の書き込みおよびその他の権限を除くすべての権限を持つことができることを意味します。 002に変更すると、他の権限を持つ書き込みのみが禁止されます。通常、この設定を次の項目に入れます~/.profile
。
umask 002 # or 007 to have files not readable by others