setfacl コマンドを使用してファイルの ACL エントリを設定します。
$ setfacl -s user::perms,group::perms,other:perms,mask:perms,acl_entry_list filename ... |
-s |
ファイルに対して ACL を設定する。すでに ACL が設定されている場合、新しい ACL に置き換える。このオプションには、少なくともファイル所有者、ファイルグループ、およびその他のエントリを指定する必要がある |
user::perms |
ファイル所有者のアクセス権を指定する |
group::perms |
ファイルグループのアクセス権を指定する |
other:perms |
ファイル所有者またはファイルグループのメンバー以外のユーザーのアクセス権を指定する |
mask:perms |
ACL マスクのアクセス権。マスクは、ユーザー (所有者以外) とグループに許される最大アクセス権を示す |
acl_entry_list |
ファイルまたはディレクトリ上で特定のユーザーとグループに関して設定する 1 つ以上の ACL エントリのリスト。ディレクトリ上でデフォルトの ACL エントリを設定することもできる。有効な ACL エントリについては、表 17-8 と表 17-9 を参照 |
filename |
ACL を設定する 1 つまたは複数のファイルまたはディレクトリを指定する |
ファイルに ACL が設定されたかどうかを確認する方法については、「ファイルに ACL が設定されているかどうかをチェックする方法」を参照してください。ファイルにどの ACL エントリが設定されているかを確認するには、getfacl コマンドを使用します。
$ getfacl filename |
すでにファイル上に ACL が存在する場合、-s オプションを指定すると、ACL 全体が新しい ACL に置き換えられます。
次の例は、ch1.doc ファイルで、ファイルの所有者に読み取り/書き込み権、ファイルグループに読み取り権のみ、その他のユーザーにアクセス権「なし」を設定します。また、ユーザー george には、このファイルの読み取り権/書き込み権が与えられ、ACL マスクに読み取り権/書き込み権が設定されます。これは、ユーザーやグループは実行権を持たないことを意味します。
$ setfacl -s user::rw-,group::r--,other:---,mask:rw-,user:george:rw- ch1.doc $ ls -l total 124 -rw-r-----+ 1 nathan sysadmin 34816 Nov 11 14:16 ch1.doc -rw-r--r-- 1 nathan sysadmin 20167 Nov 11 14:16 ch2.doc -rw-r--r-- 1 nathan sysadmin 8192 Nov 11 14:16 notes $ getfacl ch1.doc # file: ch1.doc # owner: nathan # group: sysadmin user::rw- user:george:rw- #effective:rw- group::r-- #effective:r-- mask:rw- other:--- |
次の例は、ch2.doc ファイルで、ファイル所有者に読み取り権/書き込み権/実行権、ファイルグループに読み取り権のみ、その他のユーザーにアクセス権「なし」を設定し、ACL マスクに読み取り権を設定します。さらに、ユーザー george には読み取り権/書き込み権が与えられます。ただし、ACL マスクの設定により、george の実効アクセス権は読み取りだけです。
$ setfacl -s u::7,g::4,o:0,m:4,u:george:7 ch2.doc $ getfacl ch2.doc # file: ch2.doc # owner: nathan # group: sysadmin user::rwx user:george:rwx #effective:r-- group::r-- #effective:r-- mask:r-- other:--- |