Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

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の属性がコピーできないため、エラーメッセージが出力されますので注意してください。

 - IT技術, セキュリティ , ,

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
フルスクリーン時に日本語入力ツールバーが邪魔@Ubuntu 9.04

scim+anthy で日本語入力していましたが、動画を見るときにフルスクリーン …

no image
PS3 Media Server で自動起動できない@Windows 7 64bit

PS3 Media Player へ、DLNA環境をWindows Media …

no image
フォルダオプションを設定する@Windows 7

Windows 7のエクスプローラーも今までのバージョンのWindowsと同様、 …

no image
keyhac でキーカスタマイズ@Windows XP, Vista

トラックポイントつきのIBMのキーボードを手に入れたので、パソコンの操作をキーボ …

no image
PostgreSQL 9.0 レプリケーション機能を使ってみる @ RHEL5 x86_64

PostgreSQL 9.0 がリリースされましね。早速目玉機能の一つである、レ …

no image
シェルスクリプトでファイル内の文字列を置換する

== 2012/11/8 追記 == 以下ではedコマンドでの文字列置換を紹介し …

no image
NEC Aterm 8300N DHCPの固定割り当てIPが割り当てられない

NEC Aterm 8300N の設定でDHCPの固定割り当てを設定しても、なぜ …

no image
光学メディアの書き込み速度

DVDドライブやBlu-rayドライブを買うとき、CD-R 4倍速書き込み、DV …

no image
CentOS 7からWindowsにリモートデスクトップ接続で変換キーや無変換キーを使う

CentOS 7にデフォルトで同梱されているリモートデスクトップクライアント(f …

no image
Windowsが勝手に再起動するのを防止@Windows Vista

Windows Vistaで、Windowsを更新して、ほったらかしていると勝手 …