MIRACLE

メールサービス申込 ユーザー登録&ログイン パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

テクノロジー情報

技術フォーラム


Samba とACL機能

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 
■この資料の評価をお願いします。
とても参考になった
参考になった
どちらでもない
あまり参考にならなかった
まったく参考にならなかった

コメントがある場合は以下に記述してください。技術資料として取り上げてほしいテーマも受け付けています。

以下は任意です。

お名前(フルネーム) :
会社名 :
メールアドレス :
 

ページトップへ



テクノロジー情報
リナックス関連
イベント/セミナー資料
オラクル/DB関連
Samba関連
研修のご紹介
FAQ
インストレーションガイド
ソフトウェアダウンロード
実績のあるシステム構成

会社情報 採用情報 個人情報保護方針 情報セキュリティ基本方針 商標等取り扱い事項 English
Copyright(c)2000-2015 MIRACLE LINUX CORPORATION. All Rights Reserved.