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
USB LANアダプタ GU-1000Air 購入@Ubuntu 9.04 beta

プラネックスのUSBギガビットLANアダプタ GU-1000Airを購入。 搭載 …

no image
携帯動画変換君がqt3gppflatten.exeでエラー

なぜか最近携帯用の着うたを携帯動画変換君で3gpに変換しようとすると、qt3gp …

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

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

no image
VNC上の文字化け解消@CentOS 5

一部のアプリケーション、例えばJavaやOracleのインストーラーなどは、VN …

no image
grubの起動画面で日本語キーボート配列を使う

grub 起動時に起動オプションを変更する場合、日本語キーボード配列ではなくスト …

no image
オフラインファイルで特定のファイルの同期ができない

Windowsにはオフラインファイルという機能があります。この機能を用いることで …

no image
OpenStackをインストール中にはまった@Ubuntu 12.04

OpenStack は様々なコンポーネントがあるため、インストールのための支援ツ …

no image
gitで過去のコミットを書き換える方法まとめ

コミットしてしまった後に恥ずかしい間違いに気づいて書き換えたい時の対処方法。 ま …

no image
vimで改行に置換

viで改行を置換(削除)するには、 :%s/\\n//g とすればよいですが、改 …

no image
SD経由で着信音にする方法

通常、SDカード経由で携帯に3gpファイルをコピーした場合、着信音やアラーム音に …