Solaris のシステム管理

ファイルの ACL エントリを設定する方法

  1. 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 エントリについては、表 51-9表 51-10 を参照

    filename

    ACL エントリを設定するファイルまたはディレクトリ 

  2. ファイルに ACL が設定されたかどうかを確認する方法については、「ファイルに ACL が設定されているかどうかをチェックする方法」を参照してください。ファイルにどの ACL エントリが設定されているかを確認するには、getfacl コマンドを使用します。

       $ getfacl filename
    

注意 - 注意 -

ファイルにすでに ACL が存在する場合に -s オプションを指定すると、ACL 全体が新しい 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 ファイルで、ユーザーに読み取り/書き込み/実行権を、グループに読み取り権のみ、その他のユーザーのアクセス権を「なし」に設定します。また、sysadmin グループ内のユーザーには、ファイルの読み取り/書き込み権が与えられ、ACL マスクには読み取り/書き込み権が設定されます。

$ setfacl -s u::7,g::4,o:0,g:sysadmin:6,m:6 ch2.doc 
$ getfacl ch2.doc