[Asianux3] Samba 3.0 : Windows側からLinuxのACLを表示・変更 | Server OS Cafe

Server OS Cafe

Server OSの紹介等

今回はLinux(Asianux Server 3)側のSamba共有のACL(Access Control List)をWindowsのACLとマッピングして

表示し、さらにWindows側からLinux側のACLを変更する手順について確認します。


■ Linux側でのACLの設定方法


・ACLの権限の付与

ユーザー単位の場合

setfacl -m u:ユーザー名:rwx ファイル名


グループ単位の場合

setfacl -m g:グループ名:rws ファイル名


・ACLの権限の解除

ユーザー単位の場合

setfacl -x u:ユーザー名 ファイル名


グループ単位の場合

setfacl -x g:グループ名 ファイル名


全てのACLの設定を削除

setfacl -b ファイル名


・ACLの設定の確認

getfacl ファイル名



【作業1】 Linux側でSambaの共有ディレクトリにACLを設定


1. 以下のユーザーおよびグループを追加

# groupadd smbgroup

# useradd -g smbgroup smbuser1

# useradd -g smbgroup smbuser2


2 rootをSamba認証用のユーザーとして登録

(rootでないと【作業3】でACLの変更ができない為)


# pdbedit -a root


3. smb.confに以下の様に記述しSambaデーモンを再起動


[Share]

path=/share

  read only = yes

wirte list = @root smbuser1


4. /share下にテキストファイルTextFromLinux.txtをコピー


5. /shareに対して以下の権限を設定

smbuser1には読み取り、書き込み、実行の権限を付与

smbuser2と読み取り、実行の権限を付与

smbgroupには読み取りの権限を付与


# setfacl -m u:smbuser1:rwx -R /share

# setfacl -m u:smbuser2:rx -R /share

# setfacl -m g:smbgroup:r /share

# getfacl /share

# file: share

# owner: root

# group: root

user: :rwx

user:smbuser1:rwx

user:smbuser2:r-x

group: : rwx

group:smbgroup:r--

mask: :rwx

other: : r-x


# getfacl /share/TextFromLinux.txt

# file: share/TextFromLinux.txt

# owner: root

# group: root

user: :rwx

user:smbuser1:rwx

user:smbuser2:r-x

group: : rwx

group:smbgroup:r--

mask: :rwx

other: : r-x


【作業2】 WindowsのエクスプローラーでLinuxのACLを確認


今回はWindows Server 2008(RC0)を使用してみます。


1. Samba共有ディレクトリにネットワークドライブを割り当てます。

  ログインユーザーは/shareのACLを変更できるrootにします。


acl-10-19-1


acl-10-19-2
2. 共有ディレクトリShareのプロパティを表示し[セキュリティ]タブを選択します。

[グループ名またはユーザー名]には以下のユーザー/グループが表示されています。

Everyone

root (ユーザー)

root (グループ)

smbuser1

smbuser2

smbgroup


権限はディレクトリでは全ユーザー/グループで「特殊なアクセス許可」になっています。


acl-10-19-3


3. Share下のTextFromLinux.txtのプロパティを表示し[セキュリティ]タブを選択します。

表示される[グループ名またはユーザー名]はディレクトリと同じですが、アクセス権限は以下の様に

表示されています。

・LinuxのACLで読み取り、書き込み、実行の権限を与えたsmbuser1とこのディレクトリの所有者のrootは

WindowsのACLではフルコントロールの権限が与えられています。


  acl-10-19-4


・LinuxのACLで読み取りと実行の権限を与えたsmbuser2はWindowsのACLでは「読み取りと実行」、

「読み取り」の権限が与えられています。


acl-10-19-5

・LinuxのACLで読み取りの権限のみを与えたsmbgroupはWindowsのACLでも読み取りの権限のみが

与えられています。


acl-10-19-6

4. [詳細設定]ボタンをクリックして特殊なアクセス許可の詳細を表示します。

これはディレクトリ・ファイル共に以下の様に表示されています。

・LinuxのACLで読み取り、書き込み、実行の権限を与えたsmbuser1とこのディレクトリの所有者のrootは

Windowsの特殊なアクセス許可ではフルコントロールの権限が与えられています。


acl-10-19-9


・LinuxのACLで読み取りと実行の権限を与えたsmbuser2はWindowsの特殊なアクセス許可では

以下の権限が与えられています。


フォルダのスキャン/ファイルの実行

フォルダの一覧/データの読み取り

属性の読み取り

拡張属性の読み取り

アクセス許可の読み取り


acl-10-19-10


・LinuxのACLで読み取りの権限を与えたsmbgroupはWindowsの特殊なアクセス許可では

以下の権限が与えられています。


フォルダの一覧/データの読み取り

属性の読み取り

拡張属性の読み取り

アクセス許可の読み取り


acl-10-19-11


【作業3】 WindowsエクスプローラーでLinuxのACLを変更

Shareディレクトリとその下のTextFromLinux.txtファイルのACLを変更してみます。


1. エクスプローラーの特殊なアクセス許可でsmbuser2にフルコントロールの権限を与えるように変更します。


acl-10-19-12


2. エクスプローラーの特殊なアクセス許可でsmbuser1に「属性の読み取り」の権限のみを与えるように

変更します。


  acl-1019-13


3. Linux側でgetfaclを実行しACLの権限が変更されていることを確認します。


# getfacl /share

# file: share

# owner: root

# group: root

user: :rwx

user:smbuser1:r--

user:smbuser2:rwx

group: : rwx

group:smbgroup:r--

mask: :rwx

other: : r-x


# getfacl /share/TextFromLinux.txt

# file: share/TextFromLinux.txt

# owner: root

# group: root

user: :rwx

user:smbuser1:r--

user:smbuser2:rwx

group: : rwx

group:smbgroup:r--

mask: :rwx

other: : r-x


LinuxのACLで読み取り権限を与えた場合はWindowsの特殊なアクセス許可では

「フォルダの一覧/データの読み取り」、「属性の読み取り」、「拡張属性の読み取り」、「アクセス許可の読み取り」

の4つの権限が与えられますが、Windows側で上記のどれか1つにでも権限を与えれば

Linux側のACLでは読み取り権限が与えられるようですね。


ちなみにこの様にWindows側からLinux側のACLを表示・変更することができるのですが

その逆 = Linux側からWindowsのACLを表示・変更 ということはできないみたいです。