忍者ブログ

ブランクがあるインフラエンジニアの備忘録

サーバ構築のメモ

SAMBA構築⑧ Sambaの応用:ACLによる詳細なアクセス制御

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SAMBA構築⑧ Sambaの応用:ACLによる詳細なアクセス制御

◆アクセス制御方式の比較

アクセス制御方式 UNIX上のアクセス制御 Windowsクライアントからの制御 設定の難易度
共有単位での制御 × 一律に同じパーミッションで設定 × 共有単位で制御。ファイル単位では制御不可。  易
ACLによる制御 〇 ACLによる詳細なアクセス制御 △ ACLの設定可能な範囲でWindowsのアクセス許可に対応づけ  難
NTFS互換モジュールによる制御 × アクセス許可の設定可能な範囲でACLに対応づけ。ただしUNIX上でのACL操作は想定されていない。 〇 NTFS互換のアクセス許可をサポート。  並

◆ACL設定
先ずは定義予定のグループを予め作成します。
# cd /var/lib/samba/shares/shared
# groupadd=/usr/sbin/groupadd    #groupaddコマンドのパス入力メンドイので
# groupadd group
# groupadd group1
# groupadd group2

# setfacl -m group:group1:rw- test.txt  #group1を読み書き可能に設定
# setfacl -m group:group2:r-- test.txt  #group2を読み取り可能に設定
# setfacl -m user:user1:r-x test.txt   #user1ユーザーを読み取り実行可能に設定
# getfacl test.txt   #test.txtファイルのaclを表示。
# file: test.txt
# owner: root
# group: root
user::rw-
user:user1:r-x
group::r--
group:group1:rw-
group:group2:r--
mask::rwx
other::r--

Windowsクライアントからtest.txtの詳細を確認すると以下のようになります。

 又、マスクで設定の可能です。
# setfacl -m mask::r-x test.txt  #マスクをr-xに設定
# getfacl test.txt
# file: test.txt
# owner: root
# group: root
user::rw-
user:user1:r-x
group::r--
group:group1:rw-                #effective:r-- ←パーミッションがマスクにより読み取り専用とされた
group:group2:r--
mask::r-x
other::r--


[root@smb01 shares]# mkdir dir1
# getfacl dir1/
# file: dir1/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
 
◆SamabaのACLとNTFSのアクセス許可のマッピング
 NTFSのアクセス許可ではさまざまな属性がサポートされていますが、LinuxのACLではrwxレベルの制御しか行えません。その為、NTFSのアクセス許可とLinuxのACLとでは以下の様なマッピングが行われます。

〇NTFSのアクセス許可からLinuxのACLへマッピング
NTFSのアクセス許可 LinuxのACL
変更 rwx
追加 rwx
追加と読み取り rwx
読み取りと実行 rwx
フォルダ内容の一覧表示 r-x
読み取りと実行 r-x
読み取り r--
書き込み -w-


〇LinuxのACLからNTFSのアクセス許可へのマッピング
LinuxのACL NTFSのアクセス許可
rwx フルコントロール(acl map full controlパラメータがno)の時は「変更」にマッピングされる。
r-x 読み取りと実行/フォルダ内容の一覧表示
r-- 読み取り
-w- 書き込み
--x 実行

◆NTFS互換モジュールによるNTFS互換のアクセス許可のサポート
 最近のSamabaでは、acl_xattrというモジュールによりNTFS互換のアクセスを許可によるアクセス制御がサポートされています。これはVFSモジュールを用いることで、Windowsマシンから渡されたアクセス許可の情報を、拡張属性やTDBファイルに格納出来るようになります。

例)
[aclshare]
 path = /var/lib/samba/shares/aclshare
 writeable = yes
 vfs objects = acl_xattr       #NTFSアクセス許可のサポート
 acl_xattr:ignore system acls = yes  #アクセス制御の際にパーミッションやACL設定無視。
;EOF

# mkdir /var/lib/samba/shares/aclshare
# chown user1:root /var/lib/samba/shares/aclshare
# chmod 700 /var/lib/samba/shares/aclshare
# systemctl restart smb.service

 上記設定後、Windowsマシンでaclshareへアクセスし、user1でログイン後、aclshare共有フォルダの詳細を確認すると以下のようになります。

上記画面で「編集」をクリックします。

上記画面で「SYSTEM」のアクセス許可に「フルコントロール」にチェックし、同じように「user1」も同じチェックをし、「OK」をクリック。


上記メッセージが表示されたら「はい」をクリック。

 これにより、管理ユーザーとSYSTEMのアクセス許可が「フルコントロール」になり、かつアクセス許可の許可といったNTFS固有の設定も適切に設定されます。
 以降、通常のWindowsサーバのファイル共有と同様に、アクセス許可の設定を行うことが出来ます。

例題
問題集76頁11,12
Linuxファイルシステムと共有/サービスのパーミッション - Linux技術者認定 LinuC | LPI-Japan
PR

コメント

プロフィール

HN:
のらくら
性別:
非公開
自己紹介:
介護と自身の手術でブランクが出来たインフラエンジニアの学習メモ。VirtualBOXで仮想サーバーを建て、GNS3でCiscoルーター&スイッチによるネットワークのエミュレーションもしています。GNS3ネットワーク内に仮想サーバーと連携させて、実際のネットワーク環境におけるサーバーをシミュレートする他、LinuC level3 300の対策もしています。

P R