デモ手順 - Samba PDC (squeeze)
Sambaドメイン
ファイルサーバ編
ユーザ名のマッピング
任意のユーザ名と Samba ユーザとのマッピングができることを確認する。
関連パラメータなど
- username map = /etc/samba/smbusers
- /etc/samba/smbusers ファイル
確認手順
- Windows マシンから、以下のユーザ名でログオンする(パスワードはldap01)
- LDAP01 user
- 00000001
- LDAPユーザー 01
- いずれの場合も ldap01 としてログオンしていることを確認する
- たとえば、コマンドプロンプトから net use コマンドを実行すると、ホームディレクトリが \\sambapdc\ldap01 になっていることがわかる。
応用
/etc/samba/smbusers ファイルを編集することで、上記以外のマッピングも行えることを確認する。
ホームディレクトリの設定および自動作成
ドメインの個々のユーザに対して、ホームディレクトリの設定(マウント先の共有、マウントするドライブ)が設定できることを確認する。
併せて新規ユーザーのログオン時にホームディレクトリが自動的に作成されることを確認する。
関連パラメータなど
- logon home =
- (logon drive)
- root preexec = /usr/local/sbin/createhomedir %D %S
- 本来であれば、上記設定を行わずとも、PAM の設定によりホームディレクトリが自動作成されるはずだが、今回の環境で検証した限り、自動作成がうまくいかなかったため、暫定的に root preexec パラメータを用いて自動作成を行っている。
- [homes] 共有
- (template homedir)
確認手順
- たとえば以下のようにして、 testuser という名前で、新規ユーザを作成する
# pdbedit -a testuser
GUIから作成しても構わない。
- たとえば以下のようにして、ホームディレクトリを /home/SAMBADOM/testuser に設定し、H: ドライブにマウントするように設定する
# pdbedit -h \\\\sambapdc\\testuser -D h: testuser
GUIから設定しても構わない。なお、Samba サーバ上では、[homes] 共有により、testuser でログオンすると /home/SAMBADOM/testuser が \\sambapdc\testuser という名前で共有される。
- たとえば以下のようにして、 testuser ディレクトリが存在しないことを確認する
root@sambapdc:/home/SAMBADOM# ls -l total 8 drwx------ 2 ldap01 domusers 4096 Jul 8 21:21 ldap01 drwx------ 2 ldap02 domusers 4096 Jul 8 21:24 ldap02
- Windows マシンから testuser でログオンする
- 再び ls -l /home/SAMBADOM を実行し、以下のように testuser ディレクトリが作成されていることを確認する
root@sambapdc:/home/SAMBADOM# ls -l total 12 drwx------ 2 ldap01 domusers 4096 Jul 8 21:21 ldap01 drwx------ 2 ldap02 domusers 4096 Jul 8 21:24 ldap02 drwx------ 2 testuser domusers 4096 Aug 6 19:31 testuser
- Windows マシン上でコマンドプロンプトを起動し、先ほどホームディレクトリのマウント先として指定したドライブがカレントドライブとなっていることを確認する。
- net use コマンドを実行し、カレントドライブがホームディレクトリとして指定した共有になっていることを確認する。
- たとえば以下のようにして、何かファイルを書き込み、その内容が Samba サーバ上からも参照できることを確認する。
H:\> echo test1 > test1.txt
# cat ~testuser/test1.txt test1
応用
- logon home パラメータと logon drive パラメータにより、新規作成するユーザに設定するホームディレクトリの共有パスおよびマウント先のドライブ名を指定することができる。Samba PDC では、logon home ドライブを明示的に空文字に指定しているため、デフォルトでは、ホームディレクトリのマウントは行われない。
Samba変数の値確認
関連パラメータなど
- [share_test] 共有
- root preexec = /usr/local/sbin/var-check
- /usr/local/sbin/var-check
確認手順
- [share_test] 共有内の、以下の設定のコメントをはずす
# List all variables root preexec = /usr/local/sbin/var-check '%U' '%G' '%h' '%L' '%m' '%M' '%R' '%d' '%a' '%I' '%i' '%T' '%D' '%w' '%v' '%V' '%S' '%P' '%u' '%g' '%H' '%N' '%p' '%$(PATH)' '%$(USER)'
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
- Windowsマシンから share_test 共有にアクセスする
- アクセスした時点で、root preexec パラメータにより、/usr/local/sbin/var-check スクリプトが実行され、/tmp/var.txt ファイルが生成される。
- /tmp/vat.txt の内容を参照する
# cat /tmp/var.txt %U : ldap02 %G : domusers %h : sambapdc %L : sambapdc %m : winxppro-sp3-3 %M : ::ffff:192.168.135.130 %R : NT1 %d : 2382 %a : WinXP %I : 192.168.135.130 %i : ::ffff:192.168.135.222 %T : 2011/08/06 23:22:40 %D : SAMBADOM %w : \ %v : 3.5.6 %V : 4294967295 %S : share_test %P : /var/lib/samba/shares/share_test %u : ldap02 %g : domusers %H : /home/SAMBADOM/ldap02 %N : sambapdc %p : e1 : /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin e2 : root
最後の e1 と e2 は、おのおの PATH および USER 環境変数の値を表示させている。このように、任意の環境変数の値を Samba 変数として用いることも可能である。
注意事項
このスクリプトおよび設定は、あくまで Samba 変数の値を確認する方法を示すためのものであり、実環境では用いないこと。内容を確認したら、速やかに設定を基に戻し、本スクリプトの機能を無効化すること。
応用
Samba 変数の値を確認する方法として、他にも comment パラメータや server string パラメータを用いることも可能である。
なお、パラメータによっては、パラメータ固有の Samba 変数を持っている場合があるが、本スクリプトでは、パラメータに依存しない一般的な Samba 変数のみを扱っている。
username map パラメータを用いて、Windows からみたユーザ名と実際のユーザ名を別のユーザ名とした場合、%U には、Windows から見たユーザ名が、%u には実際のユーザ名が記録される。
アクセス権のないファイルを非表示にする
設定を行うことで、アクセス権のないファイルが非表示になることを確認する。
関連パラメータなど
- [share_test] 共有
- hide unreadable パラメータ
確認手順
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
- secure.txt と normal.txt が表示されていることを確認する
- [share_test] 共有内の、以下の設定のコメントをはずす
# Hide unreadable files hide unreadable = yes
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
- secure.txt が表示されていないことを確認する
応用設定
hide unwriteable パラメータの動作確認、フォルダを作成した際の挙動の確認。
特定のファイル名のファイルを非表示にする
関連パラメータなど
- [share_test] 共有
- veto files パラメータ
確認手順
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の veto_files フォルダにアクセスする
- GodMode という特殊なフォルダ(Windows XPの場合は普通のフォルダ)と dummy.exe が表示されていることを確認する
- [share_test] 共有内の、以下の設定のコメントをはずす
# Prohibit to put EXE files and files with GUID veto files = /*.exe/*.{*}/ delete veto files = yes
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の veto_files フォルダにアクセスする
- GodMode と dummy.exe の両方が表示されていないことを確認する
- .EXE ファイルを Windows マシンから share_test 共有内にコピーできないことを確認する
- パーミッションが 755 になっているので、あらかじめ 1777 などに変更した上で確認すること。
- share_test 共有に writeable = yes の設定が抜けているので、あらかじめ設定しておくこと
ファイルアクセスの監査設定を行う
関連パラメータなど
- [share_test] 共有
- vfs objects = full_audit
- full_audit:* パラメータ
- /etc/rsyslog.d/samba.conf
確認手順
- [share_test] 共有内の、以下の設定のコメントをはずす
# Audit vfs objects = full_audit full_audit:facility = local1 full_audit:success = connect disconnect full_audit:failure = connect disconnect mkdir rmdir open close rename unlink
share_test 共有に、既に有効な vfs objects 行がある場合は、その行の末尾に full_audit を追記するか、一旦既存の vfs objects 行をコメントアウトすること。
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする
- /var/log/samba/log.audit に、以下のようなログが記録されていることを確認する
Aug 7 00:54:14 sambapdc smbd[2833]: ldap02|192.168.135.130|connect|ok|share_test
応用
full_audit:success および full_audit:failure パラメータの値をいろいろと書き換えて検証してみる。
/etc/rsyslog.d/samba.conf の内容と full_audit:facility パラメータの内容を変更して、Samba がログを出力するファシリティや出力先をいろいろ変えてみる。
シンボリックリンクの有効化
関連パラメータなど
- [share_test] 共有
- unix extensionsパラメータ
- wide links パラメータ
確認手順
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする
- [share_test] 共有内の、wide_links フォルダにある passwd.txt (/etc/passwdにリンク)をクリックし、ファイル内容が読み取れないことを確認する。
- [share_test] 共有内の、以下の設定のコメントをはずし、値を yes に設定する
# Prohibit to symlink outside the share (by default after Samba 3.5.0) wide links = yes
- [global] セクション内の、以下の設定のコメントをはずす
unix extensions = no
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
- [share_test] 共有内の、wide_links フォルダにある passwd.txt をクリックし、ファイル内容が読み取れることを確認する
ファイルサービスとアクセス制御
共有のアクセス制御
IPアドレス単位のアクセス制御
関連パラメータなど
- share_test 共有
- hosts allow パラメータ
- hosts deny パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.142 - 143
ユーザ、グループ単位でのアクセス制御
関連パラメータなど
- shared 共有
- valid users パラメータ
- invalid users パラメータ
参照
- 「改訂版 Sambaのすべて」P.144 - 145
読み込み、書き込み単位でのアクセス制御
関連パラメータなど
- shared 共有
- read only パラメータ
- write list パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.148 - 149
指定した時間帯に共有を読み取り専用にする
未設定
参照
- 「[改訂版 Sambaのすべて]」P.149 - 150
複数人から互いに書き込み可能なファイル共有
関連パラメータなど
- shared 共有
参照
- 「[改訂版 Sambaのすべて]」P.154 - 155
書き込み専用のファイル共有
未設定
参照
- 「[改訂版 Sambaのすべて]」なし
ACL の操作
関連パラメータなど
- aclshare1 共有
- aclshare2 共有
- acl map full control パラメータ
- dos filemode パラメータ
- inherit owner パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.155 - 187
ファイル共有機能の基本
ファイル共有一覧画面での表示制御
ファイル共有の一覧画面で、任意のファイル共有を非表示にできることを確認する。
関連パラメータなど
- share_test 共有
- browseable パラメータ
確認手順1
- 1. Windows マシンに任意のユーザでログオンし、例えば「ファイル名を指定して実行」で「\\sambapdc」と入力する。
- 共有の一覧が表示され、share_test 共有も表示されていることを確認する。
- 2. share_test 共有内の、以下の設定のコメント「;」をはずす
# Do not list the share list ; browseable = no
- 3. Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
- 4. Windows マシンに任意のユーザでログオンし、例えば「ファイル名を指定して実行」で「\\sambapdc」と入力する
- 共有の一覧が表示されるが、share_test 共有は表示されていないことを確認する。
- 5. 例えば「ファイル名を指定して実行」で「\\sambapdc\share_test」と入力する
- 共有一覧では非表示となったが、UNC パスを直接指定することで、図のように share_test 共有自体にはアクセス可能であることを確認する。
確認手順2
- 確認手順1の 2. の設定の代わりに、share_test セクションのセクション名を share_test$ に変更する
- 確認手順1の 5. の操作において、「\\sambapdc\share_test$」と入力し、共有内のフォルダ一覧が表示できることを確認する
参照
- 「[改訂版 Sambaのすべて]」P.194
ユーザ、グループ単位に隠し共有にする
未設定
参照
- 「[改訂版 Sambaのすべて]」P.195
共有への同時アクセス数の上限設定
関連パラメータなど
- share_test 共有
- max connections パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.198
ホームディレクトリの自動共有
関連パラメータなど
- homes 共有
参照
- 「[改訂版 Sambaのすべて]」P.199 - 201
ファイル属性
関連パラメータなど
- store dos attributes パラメータ
参照
- 「[改訂版 Sambaのすべて]」P.207
指定したファイル、ディレクトリ名の表示、アクセスを禁止する
関連パラメータなど
- [share_test] 共有
- veto files パラメータ
確認手順
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
share_test 共有内の veto_files フォルダにアクセスする
- GodMode という特殊なフォルダ(Windows XPの場合は普通のフォルダ)と
dummy.exe が表示されていることを確認する
- [share_test] 共有内の、以下の設定のコメントをはずす
# Prohibit to put EXE files and files with GUID veto files = /*.exe/*.{*}/ delete veto files = yes
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コ
マンドなどで、変更を反映させる
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
share_test 共有内の veto_files フォルダにアクセスする
- GodMode と dummy.exe の両方が表示されていないことを確認する
- .EXE ファイルを Windows マシンから share_test 共有内にコピーできない
ことを確認する
- パーミッションが 755 になっているので、あらかじめ 1777 などに変更
した上で確認すること。
- share_test 共有に writeable = yes の設定が抜けているので、あらか
じめ設定しておくこと
参照
- 「[改訂版 Sambaのすべて]」P.216 - 217
アクセスできないファイルの表示、読み取りを禁止する
設定を行うことで、アクセス権のないファイルが非表示になることを確認する。
関連パラメータなど
- share_test 共有
- hide unreadable パラメータ
確認手順
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
- secure.txt と normal.txt が表示されていることを確認する
- share_test 共有内の、以下の設定のコメントをはずす
# Hide unreadable files ; hide unreadable = yes
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有内の hide_unreadable フォルダにアクセスする
- secure.txt が表示されていないことを確認する
応用設定
hide unwriteable パラメータの動作確認、フォルダを作成した際の挙動の確認。
参照
- 改訂版 Sambaのすべて P.217 - 218
シンボリックリンクの追跡
関連パラメータなど
- [share_test] 共有
a* unix extensions パラメータ
- wide links パラメータ
確認手順
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、
share_test 共有にアクセスする
- [share_test] 共有内の、wide_links フォルダにある passwd.txt
(/etc/passwdにリンク)をクリックし、ファイル内容が読み取れないこと を確認する。
- [share_test] 共有内の、以下の設定のコメントをはずし、値を yes に設定
する
# Prohibit to symlink outside the share (by default after Samba 3.5.0) wide links = yes
- [global] セクション内の、以下の設定のコメントをはずす
unix extensions = no
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コ
マンドなどで、変更を反映させる
- [share_test] 共有内の、wide_links フォルダにある passwd.txt をクリッ
クし、ファイル内容が読み取れることを確認する
参照
- 「[改訂版 Sambaのすべて]」P.221 - 223
Windows Vista からアクセスした際のパフォーマンスの向上
関連パラメータなど
- share_test 共有
- vfs objects = readahead 行
参照
- 「[改訂版 Sambaのすべて]」P.224 - 225
Windows マシンからのファイル共有管理
関連パラメータなど
- add share comand パラメータ
- change share comand パラメータ
- delete share comand パラメータ
- mgrshare スクリプト
参照
- 「[改訂版 Sambaのすべて]」P.227 - 236
高度なファイル共有機能
ごみ箱機能
ファイルアクセスの監査
関連パラメータなど
- share_test 共有
- vfs objects = full_audit 行
- full_audit:* パラメータ
- /etc/rsyslog.d/samba.conf ファイル
確認手順
- share_test 共有内の、以下の設定のコメントをはずす
# Audit vfs objects = full_audit full_audit:facility = local1 full_audit:success = connect disconnect full_audit:failure = connect disconnect mkdir rmdir open close rename unlink
share_test 共有に、既に有効な vfs objects 行がある場合は、その行の末尾に full_audit を追記するか、一旦既存の vfs objects 行をコメントアウトすること。
- Samba サーバを再起動する、もしくは smbcontrol smbd reload-config コマンドなどで、変更を反映させる
- Windowsマシンに一般のユーザ(ldap01ユーザなど)でログオンし、share_test 共有にアクセスする
- /var/log/samba/log.audit に、以下のようなログが記録されていることを確認する
Aug 7 00:54:14 sambapdc smbd[2833]: ldap02|192.168.135.130|connect|ok|share_test
応用
full_audit:success および full_audit:failure パラメータの値をいろいろと書き換えて、ログに記録する項目を変更して確認してみる。
/etc/rsyslog.d/samba.conf の内容と full_audit:facility パラメータの内容を変更して、Samba がログを出力するファシリティや出力先をいろいろ変えてみる。
参照
- 「[改訂版 Sambaのすべて]」P.259 - 261