ACL – Access Control List @ RHEL5
2013/07/15
ACL (Access Control List) とはファイルシステムの機能で、その名の通りファイルやディレクトリへのアクセス制御を行うことができます。ちなみにカーネル2.6から使用できるようです。
通常”ls -l” で表示させた時に “rwxrw-rw-” のように自分、グループ、その他についてのアクセス制御が設定されていますが、例外としてこのユーザだけ読み書きさせたいとか、このグループだけ読みこみ専用にしたなどを実現させることができます。
まずaclを使用するには、そのファイルシステム(ここではext3)がaclが使えるようになっていなければなりません。RHEL5のインストーラで作成したパーティションは、ファイルシステムレベルで有効になっていますが、後から自分で作成したファイルシステムはデフォルトでは有効になっていません。有効にする方法はファイルシステムレベルか、マウント時のオプションで指定できます。
まず、ファイルシステムレベルで有効になっているかどうかは、以下のコマンドで確認できます。
(例) /dev/sda1を確認 [root@localhost tmp]# tune2fs -l /dev/sda1 tune2fs 1.39 (29-May-2006) Filesystem volume name: /boot Last mounted on: <not available> Filesystem UUID: 16267cf2-e233-472c-9c5f-d832bd24xxxx Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue … 略 …
マウントオプションで有効になっている場合は以下のように確認できます。
[root@localhost tmp]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) … 省略 … none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/sdb1 on /opt type ext3 (rw,acl)
有効になっていない場合は、tune2fsコマンドでファイルシステムレベルで有効にするか、fstabに記述してmountオプションで有効にしてください。
(例) # mount -o remount,acl /dev/sdb1
使用方法はそれほど難しくありません。
まずはhogeというファイルの現在のACLの状態を見てみます。
[root@localhost tmp]# getfacl hoge # file: hoge # owner: root # group: root user::rw- group::r-- other::r--
下3行の赤文字部分が現在の設定部分です。”ls -l” で表示させた権限と同じものです。
[root@localhost tmp]# ls -l hoge -rw-r--r-- 1 root root 0 1月 4 12:22 hoge
つまり、特別なACLは何も設定されていません。この”hoge”ファイルにユーザmaznは読み書きできるように設定してみます。設定は”setfacl”コマンドで行います。
[root@localhost tmp]# setfacl -m u:mazn:rw- hoge [root@localhost tmp]# getfacl hoge # file: hoge # owner: root # group: root user::rw- user:mazn:rw- group::r-- mask::rw- other::r--
以上のようになり、ユーザmaznはこのファイルを読み書きできるようになります。”-m”が属性設定オプションで “u”がユーザを指定”:”で繋いで、”mazn”がユーザ名、さらに”:”で繋いで”rw-“がアクセス権です。”u”の代わりに”g”を使うことでグループの権限を設定できます。このように、ACLが設定されると、”ls -l”でファイルを見たときに属性に”+”がつきます。
[root@localhost tmp]# ls -l hoge -rw-rw-r--+ 1 root root 0 1月 4 12:22 hoge
ディレクトリにも同様に設定できます。ディレクトリの場合はさらに “u”や”g”の前に”d:”をつけることができます。”d”をつけるとそのディレクトリ配下に新しく作成されるファイルやディレクトリの属性のデフォルト値になります。一つでもデフォルト値を設定すると、その他のデフォルト値も自動的に設定されます。
[root@localhost tmp]# mkdir foo [root@localhost tmp]# setfacl -m d:u:mazn:rwx foo [root@localhost tmp]# getfacl foo # file: foo # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:mazn:rwx default:group::r-x default:mask::rwx default:other::r-x
“-x”オプションを使用すると、権限を削除できます。
[root@localhost tmp]# setfacl -x u:mazn hoge
“mv”コマンドで移動しても属性は変わりませんが、cpコマンドでは削除されます。cpコマンドで属性までコピーしたい場合は、”-p”オプションを使用してください。mvコマンドでACLが有効なファイルシステムから無効なファイルシステムへ移動した場合、ファイルは移動できますが、ACLの属性がコピーできないため、エラーメッセージが出力されますので注意してください。
336px
関連記事
-
-
フルスクリーン時に日本語入力ツールバーが邪魔@Ubuntu 9.04
scim+anthy で日本語入力していましたが、動画を見るときにフルスクリーン …
-
-
PS3 Media Server で自動起動できない@Windows 7 64bit
PS3 Media Player へ、DLNA環境をWindows Media …
-
-
フォルダオプションを設定する@Windows 7
Windows 7のエクスプローラーも今までのバージョンのWindowsと同様、 …
-
-
keyhac でキーカスタマイズ@Windows XP, Vista
トラックポイントつきのIBMのキーボードを手に入れたので、パソコンの操作をキーボ …
-
-
PostgreSQL 9.0 レプリケーション機能を使ってみる @ RHEL5 x86_64
PostgreSQL 9.0 がリリースされましね。早速目玉機能の一つである、レ …
-
-
シェルスクリプトでファイル内の文字列を置換する
== 2012/11/8 追記 == 以下ではedコマンドでの文字列置換を紹介し …
-
-
NEC Aterm 8300N DHCPの固定割り当てIPが割り当てられない
NEC Aterm 8300N の設定でDHCPの固定割り当てを設定しても、なぜ …
-
-
光学メディアの書き込み速度
DVDドライブやBlu-rayドライブを買うとき、CD-R 4倍速書き込み、DV …
-
-
CentOS 7からWindowsにリモートデスクトップ接続で変換キーや無変換キーを使う
CentOS 7にデフォルトで同梱されているリモートデスクトップクライアント(f …
-
-
Windowsが勝手に再起動するのを防止@Windows Vista
Windows Vistaで、Windowsを更新して、ほったらかしていると勝手 …
- PREV
- DLNAサーバ TVersity
- NEXT
- パスワードの有効期限と、アカウント有効期限@RHEL5