2017-01-11

tobijibu

ACLを使ってファイルのアクセス権限を細かく設定する

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/19
ACLの説明と、設定方法が分かりやすく記載されています。

http://kazmax.zpp.jp/cmd/s/setfacl.1.html
ACLの説明と、オプションの詳細が記載されています。