次の作業マップは、UFS ファイルの ACL を表示する、ACL を変更する、ほかのファイルへ ACL をコピーするといった作業について説明した箇所を示しています。
作業 |
参照先 |
---|---|
ファイルに ACL が存在するかを確認します | |
ファイルに ACL を追加します | |
ACL をコピーします | |
ACL を変更します | |
ファイルから ACL を削除します | |
ファイルの ACL を表示します |
% ls -l filename |
filename には、ファイルまたはディレクトリを指定します。
出力のモードフィールドの右側にプラス記号 (+) が表示されているときは、そのファイルに ACL が設定されています。
UNIX ファイルアクセス権を超える ACL エントリを追加しない限り、ファイルの ACL は「弱い」とみなされ、プラス記号 (+) は表示されません。
次の例では、ch1.sgm ファイルに ACL が設定されています。ACL は、モードフィールドの右側にあるプラス記号 (+) で示されています。
% ls -l ch1.sgm -rwxr-----+ 1 stacey techpubs 167 Nov 11 11:13 ch1.sgm |
setfacl コマンドを使用してファイルの ACL を設定します。
% setfacl -s user::perms,group::perms,other:perms,mask:perms,acl-entry-list filename ... |
ファイルに対して ACL を設定します。すでに ACL が設定されている場合、新しい ACL に置き換えます。このオプションには、少なくとも user::、group::、および other:: のエントリを指定する必要があります。
所有者のアクセス権を指定します。
グループメンバーのアクセス権を指定します。
所有者またはグループのメンバー以外のユーザーのアクセス権を指定します。
ACL マスクのアクセス権を指定します。マスクは、ユーザー (所有者以外) とグループに許される最大アクセス権を示します。
ファイルまたはディレクトリ上で特定のユーザーとグループに設定する 1 つまたは複数の ACL エントリのリストを指定します。ディレクトリ上でデフォルトの ACL エントリを設定することもできます。有効な ACL エントリについては、表 6–7 と表 6–8 を参照してください。
ACL を設定する 1 つまたは複数のファイルまたはディレクトリを指定します。filename が複数ある場合は、スペースで区切ります。
すでにファイル上に ACL が存在する場合、-s オプションを指定すると、ACL 全体が新しい ACL に置き換えられます。
詳細は、setfacl(1) のマニュアルページを参照してください。
ACL (ACL エントリ) がファイルに設定されたことを確認します。
% getfacl filename |
詳細は、「ファイルに ACL が設定されているかどうかを検査する方法」を参照してください。
次の例では、ch1.sgm ファイルのアクセス権を設定しています。所有者には読み取り権と書き込み権が設定され、グループには読み取り専用権が設定され、その他のユーザーには何も設定されません。また、ユーザー anusha にはこのファイルの読み取り権および書き込み権が与えられ、ACL マスクには読み取り権および書き込み権が設定されます。これは、ユーザーやグループは実行権を持たないことを意味します。
% setfacl -s user::rw-,group::r--,other:---,mask:rw-,user:anusha:rw- ch1.sgm % ls -l total 124 -rw-r-----+ 1 stacey techpubs 34816 Nov 11 14:16 ch1.sgm -rw-r--r-- 1 stacey techpubs 20167 Nov 11 14:16 ch2.sgm -rw-r--r-- 1 stacey techpubs 8192 Nov 11 14:16 notes % getfacl ch1.sgm # file: ch1.sgm # owner: stacey # group: techpubs user::rw- user:anusha:rw- #effective:rw- group::r-- #effective:r-- mask:rw- other:--- |
次の例では、ch2.sgm ファイルのアクセス権を設定します。所有者には読み取り権、書き込み権、および実行権が設定され、グループには読み取り専用権が設定され、その他のユーザーには何も設定されません。また、ACL マスクには読み取り権が設定されます。さらに、ユーザー anusha には読み取り権と書き込み権が与えられます。ただし、ACL マスクの設定により、anusha のアクセス権は読み取り専用です。
% setfacl -s u::7,g::4,o:0,m:4,u:anusha:7 ch2.sgm % getfacl ch2.sgm # file: ch2.sgm # owner: stacey # group: techpubs user::rwx user:anusha:rwx #effective:r-- group::r-- #effective:r-- mask:r-- other:--- |
getfacl の出力先を変更することにより、ファイルの ACL をほかのファイルへコピーします。
% getfacl filename1 | setfacl -f - filename2 |
ACL のコピー元ファイルを指定します
ACL のコピー先ファイルを指定します
次の例では、ch2.sgm の ACL が ch3.sgm にコピーされます。
% getfacl ch2.sgm | setfacl -f - ch3.sgm |
setfacl コマンドを使用してファイルの ACL エントリを変更します。
% setfacl -m acl-entry-list filename ... |
ファイルの ACL エントリが変更されたことを確認します。
% getfacl filename |
次の例では、ユーザー anusha のアクセス権を読み取りおよび書き込みに変更します。
% setfacl -m user:anusha:6 ch3.sgm % getfacl ch3.sgm # file: ch3.sgm # owner: stacey # group: techpubs user::rw- user::anusha:rw- #effective:r-- group::r- #effective:r-- mask:r-- other:r- |
次の例では、book ディレクトリのデフォルトアクセス権を変更します。グループ staff のデフォルトのアクセス権を読み取りに変更し、さらに、ACL マスクのデフォルトアクセス権を読み取りおよび書き込みに変更します。
% setfacl -m default:group:staff:4,default:mask:6 book |
ファイルから ACL エントリを削除します。
% setfacl -d acl-entry-list filename ... |
指定した ACL エントリを削除します。
ファイルまたはディレクトリから (アクセス権を指定せずに) 削除する ACL エントリのリストを指定します。特定のユーザーとグループの ACL エントリとデフォルトの ACL エントリ以外は削除できません。有効な ACL エントリについては、表 6–7 と表 6–8 を参照してください。
1 つまたは複数のファイルまたはディレクトリを空白で区切って指定します。
setfacl -s コマンドを使用してファイルのすべての ACL エントリを削除してから、指定した新しい ACL エントリで置き換えることもできます。
ファイルから ACL エントリが削除されたことを確認します。
% getfacl filename |
次の例では、ch4.sgm ファイルからユーザー anusha を削除します。
% setfacl -d user:anusha ch4.sgm |
getfacl コマンドを使用してファイルの ACL エントリを表示します。
% getfacl [-a | -d] filename ... |
指定したファイルまたはディレクトリのファイル名、所有者、グループ、ACL エントリを表示します。
指定したディレクトリのファイル名、所有者、グループ、デフォルトの ACL エントリ (存在する場合) を表示します。
1 つまたは複数のファイルまたはディレクトリを空白で区切って指定します。
複数のファイル名をコマンド行に指定した場合は、各 ACL エントリの間に空白行が表示されます。
次の例は、ch1.sgm ファイルのすべての ACL エントリを示します。ユーザーエントリとグループエントリの隣りの #effective: は、ACL マスクによって変更されたあとのアクセス権の設定を示します。
% getfacl ch1.sgm # file: ch1.sgm # owner: stacey # group: techpubs user::rw- user:anusha:r- #effective:r-- group::rw- #effective:rw- mask:rw- other:--- |
次の例は、book ディレクトリのデフォルトの ACL エントリを示します。
% getfacl -d book # file: book # owner: stacey # group: techpubs user::rwx user:anusha:r-x #effective:r-x group::rwx #effective:rwx mask:rwx other:--- default:user::rw- default:user:anusha:r-- default:group::rw- default:mask:rw- default:other:--- |