Linuxのファイルアクセス権限の設定で、ACL(Access Control List = アクセス制御リスト)というものがあります。実は私もつい最近知りました。
普段ファイルの権限を設定する際にはアクセス権(rwx)を利用しますが、ACLを利用すると、より細かい範囲で権限を設定することができます。
$ ls -l
drwxrwxr-x+ 2 vagrant vagrant 4096 Jan 11 10:54 html
上記はls -l
の結果です。アクセス権限の右にある+
がACL設定されていることを表しています。
ACLを利用すると、たとえば以下のようなことができます。
- 同じグループでも特定のユーザーのみ"アクセス不可"にする。
- 複数のグループに対してアクセス許可を与える。
では、ACLの設定方法を説明します。
ACLを表示する
ACLを確認するには下記のコマンドを実行します。
$ getfacl (パス)
下記はカレントディレクトリのACLを表示する例です。
$ getfacl .
# file: .
# owner: vagrant
# group: vagrant
user::rwx
user:vagrant:rwx
group::rwx
mask::rwx
other::r-x
カレントディレクトリはvagrant
ユーザーにrwx
の権限があることがわかります。
ACLを設定する
ACLを設定するには下記のコマンドを実行します。
$ setfacl -m user:(ユーザー):(パーミッション) (パス)
カレントディレクトリの読み書き実行権限を、tobijibu
に付与する例です。
$ setfacl -m user:tobijibu:rwx ./
takoyaki.txt
の読み書き権限を、tako
グループに付与する例です。
$ setfacl -m group:tako:rw- takoyaki.txt
surume.txt
に対するika
グループのACLを削除する例です。
$ setfacl -x group:ika surume.txt
参考サイト
http://edu.jtp.co.jp/column/19ACLの説明と、設定方法が分かりやすく記載されています。
http://kazmax.zpp.jp/cmd/s/setfacl.1.html
ACLの説明と、オプションの詳細が記載されています。