所有グループのみを変更したい場合はchownコマンドのほかに、chgrpコマンドも使用できます。
[コマンド書式]
chgrp -オプション グループ ファイル名(ディレクトリ名)
使用方法はchownコマンドと同様、-Rオプションで指定したディレクトリ以下のファイルとディレクトリの所有グループを変更します
ファイルシステムアクセスリスト:ACL
「所有者」「所有グループ」「その他ユーザー」ごとにアクセス権を設定するやり方では、
アクセス権を「rw-r—–(640)」に設定したファイルの場合のアクセス権は次のとおりになります。
・所有者は読み取りと書き込みができる
・所有グループのユーザーには読み取りのみができる(書き込みはできない)
・その他ユーザーにはいっさいの権限がない
このファイルに対し、所有グループに所属していない特定ユーザへアクセス権を付与したい時に、
ファイルシステムのACL(Access Control List)機能を利用すると、特定のユーザーやグループに対して
アクセス権を設定することができます。
ACLは、ext2、ext3、XFS、ReiserFS、JFSで利用でき、通常、XFSとJFSでは、デフォルトでACLが有効になっています。
ext2、ext3、ReiserFSにて使用する場合、マウントオプションとして「acl」を追加する必要があります。
[コマンド]ACLが設定されているか、/etc/fstabを確認
$ cat /etc/fstab
/dev/mapper/VolGroup-lv_root / ext4 defaults,acl 1 1
UUID=4e05bada-9b44-48fe-a40e-f9e45e393e43 /boot ext4 defaults 1 2
/dev/mapper/VolGroup-lv_home /home ext4 defaults,acl 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
また、ACLが設定されているファイルはファイルのアクセス権表記の末尾に「+」が付加されます。
$ ls -l
-rw-rw-r–+ 1 test test 0 Nov 19 14:25 testfile01.txt
ファイルやディレクトにACLを設定するには、setfaclコマンドを使用します。
[コマンド書式]
setfacl -オプション ACLエントリ ファイル名(ディレクトリ名)
オプション
オプション | 説明 |
-m ACLエントリ | ACLエントリを設定します |
-x ACLエントリ | ACLエントリを解除します |
-R | 指定したディレクトリ以下のファイルとディレクトリに対し、ACLを割り当てます |
ACLエントリの設定は次のとおりに行います。
ACLエントリ
エントリ | 説明 |
u(user):ユーザ名:アクセス権 | 指定したユーザに対し、アクセス権を設定します ユーザ名が空の場合は、所有者への設定なります |
g(gorup):グループ名:アクセス権 | 指定したグループに対し、アクセス権を設定します グループ名が空の場合は、所有グループへの設定なります |
o(other):ユーザ名:アクセス権 | その他のユーザに対し、アクセス権を設定します。 |
エントリのユーザ名(グループ名)の指定には名前と数値(uidとgid)のどちらも指定できます。
アクセス権の指定には、rwxによる組み合わせか8進数での表記が使用できます。
ファイルやディレクトリに設定されたACLを確認するにはgetfaclコマンドを使用します。
[コマンド実行例]
$ getfacl testfile01.txt
# file: testfile01.txt
# owner: test
# group: test
user::rw-
group::rw-
mask::rw-
other::r–
・testfile01.txtへユーザstaffのrwのアクセス権を追加します。
$ setfacl -m u:staff:rw- testfile01.txt
$ getfacl testfile01.txt
# file: testfile01.txt
# owner: test
# group: test
user::rw-
user:staff:rw-
group::rw-
mask::rw-
other::r–
・testfile01.txtへユーザstaffのrwのアクセス権を削除します。
$ setfacl -x u:staff testfile01.txt
$ getfacl testfile01.txt
# file: testfile01.txt
# owner: test
# group: test
user::rw-
group::rw-
mask::rw-
other::r–