MIRACLE LINUX V3.0でACL機能を利用するにはどうすればいいのでしょうか?
回答.
MIRACLE LINUX V3.0ではXFS、ext3、ext2がACLに対応しています。XFSはデフォルトで対応していますが、ext3とext2に関してはパーティションのマウント時にオプションを指定しなければいけません。これらのパーティションに対してサーバマシン起動時にACL機能を自動で有効にするには、/etc/fstabを編集する必要があります。以下は設定例ですが、具体的には対象となるパーティションの行の四列目、オプションの列に「acl」を追加します。
#<partition> <mount>
<type> <options> <dump>
<pass>
/dev/sda2 / ext3 rw,acl 1 1
/dev/sda1 none swap swap 0 0
proc /proc proc defaults 0 0
/dev/sda3 /xfs xfs rw 1 2
|
/etc/fstabの設定例
/etc/fstabを編集後、再起動すればシステムに反映されますが、mount -aを実行することで即座に反映させることもできます。
Linux上でACLを設定するにはどうすればいいのでしょうか?
回答.
ACLの設定にはsetfaclコマンド、ACLの参照にはgetfaclコマンドを利用します。setfacl のオプションの詳細はmanページ(man setfaclで参照)を確認してください。setfaclでACLを追加するには「-m」オプション、削除するには「-x」オプションを指定し、その後にACL文、ファイル名の順に指定します。このACL文のフォーマットはフィールド1:フィールド2:フィールド3のように三つのフィールドが「:」で区切られています。以下は各フィールドの説明です。
フィールド |
説明 |
1 |
U(ユーザ)g(グループ)m(マスク)o(その他)のいずれか |
2 |
フィールド1がユーザの場合、そのuid
フィールド1がグループの場合、そのgid
それ以外の場合は設定せず |
3 |
ファイルのパーミッション(rwx) |
表1:ACLの構文
また、ACL設定はファイルの拡張情報として保存され、設定されたファイルをlsコマンドで参照するとパーミッションの末尾に「+」が表示されます。
ACLを設定
$ setfacl -m u:taro:rw testfile
lsコマンドでACL設定済みのファイルを参照
$ ls -l ./testfile
-rw-rw-r--+ 1 shiro miracle 0 Oct 13 18:20 ./testfile
ACL情報の取得
$ getfacl
testfile
# file: testfile
# owner: shiro
# group: miracle
user::rw-
user:taro:rw-
group::r--
mask::rw-
other::r--
|
setfaclやgetfaclの使用例
WindowsクライアントからACLを設定するにはどうすればよいのですか?
回答.
MIRACLE LINUX V3.0のSambaは「--with-acl-support」コンパイルオプション付きで作成されているため、ACL設定をWindowsクライアントから参照・編集できます。ACL設定を確認したい場合は、対象のファイルもしくはディレクトリに対し右クリックしてメニューの「プロパティ」を選択します。プロパティのウインドウが開いたら、上部の「セキュリティ」タブをクリックすると、以下のような形でアクセス設定が表示されます。
WindowsクライアントからのACL設定
なお、このウインドウからファイルやディレクトリにACL 制限をかけることができますが、その際にはSambaがNTドメインに所属している必要があります。Sambaがワークグループに属している場合はユーザ名やグループ名が検索できません。SambaをPDCとしたNTドメイン構築ではSIDよりユーザ名・グループ名を検索することができます。
NTドメインの管理者ユーザであるAdministratorでACL設定を行おうとしても、権限がないというエラーがでてしまいます。
回答.
ACLの設定はそのファイルの所有者かrootユーザのみが行えます。AdministratorユーザはLinux上では一般ユーザのため、ACL設定の権限がなくそのような要求を出してもシステムに拒否されてしまいます。対処法としては、/etc/samba/smb.confの[global]セクションに、admin usersパラメータを設定します。これにより、AdministratorがSambaを経由してファイルにアクセスする場合にはuid=0、rootユーザと同等の権限が与えられ、ACLを設定することが可能となります。
[global]
admin users = Administrator
(略)
|
/etc/samba/smb.confの設定例
ACLの設定は一ファイルにつき最大何個まで可能ですか?
回答.
ファイルシステムがxfsの場合、ACLの制限数はユーザ・グループの合計で24個まで設定可能です。
ファイルシステムがext3の場合、ACLの制限数はユーザ・グループの合計で32個まで設定可能です。
それぞれ、デフォルトではユーザ、グループ、マスク、その他の四つがすでに指定されていますので、新規に追加できるのはxfsの場合は20エントリ、ext3の場合は28エントリまでとなります。それ以上は指定できませんので、設定可能なエントリ内で収まるようなユーザ・グループ設計を行う必要があります。
ファイルをコピー、移動、バックアップする場合、ACLの情報も保持されますか?
回答.
ファイルの移動に関しては、mvコマンドで指定された移動先のパーティションがACLに対応している限り保持されます。ファイルのコピーに関しては、通常のcpコマンドでは保持されないため、-pオプションを指定する必要があります。
# mv /ext3/file1 /xfs/file1
# cp -p /ext3/file2 /xfs/file2
|
通常、UNIX上でファイルのバックアップに用いられるtarコマンドはACLなどの拡張情報を格納できません。そこで、代替コマンドとしてstarが用意されています。Starコマンドに-aclオプションをつけるとACL情報もアーカイブに格納されます。Starのオプションはtarと若干違いますので、詳細なオプションに関してはman starを参照してください。
# star H=exustar -acl -c file1 file2 > archive.tar
# star -acl -x <
archive.tar
|