Samba設定
CentOS5.2設定 - 常水商会::よしなしごと より分家
φ(..)メモメモ...
Samba
- バージョン:Version 3.0.28-1.el5_2.1
- 設定ファイル群:/etc/samba/
- lmhosts
- passdb.tdb
- secrets.tdb
- smb.conf:Samba設定ファイル
- smbusers
- べからず集2008 ※以下引用
- 設定(smb.conf)
- SWATのwizardを使ってざっくりと設定
- スタンドアロン、DCに参加しない、DCにならない
- プリンタ共有は使わない
- ユーザーごとのHOMEディレクトリを使用
- ゲストOKの共有ディレクトリを設定(hosts.allow設定)
こんな感じ
[global] workgroup = XXX server string = Samba %v passdb backend = tdbsam username map = /etc/samba/smbusers ldap ssl = no [homes] comment = Home Directories valid users = %S read only = No browseable = No [public] comment = Public Directories path = /home/public/ read only = No guest ok = Yes hosts allow = 127.0.0.1, 192.168., xxx.yy., xxx.yz.
ゴミ箱を追加する(Samba3.0 以上)
smb.confのglobalセクションに以下のオプションを追加する(引用元)
[global] (省略) vfs objects = recycle (省略)
更にゴミ箱のオプションを設定するために、smb.confの共有ディレクトリセクション(homeやpublic等)に以下のオプションを追加する(引用元)
(省略) recycle:repository = .Trash/%u recycle:keeptree = yes recycle:versions = yes recycle:touch = yes recycle:maxsize = 0 recycle:exclude = *.tmp *.temp *.o *.obj ~$* *.~?? recycle:exclude_dir = /tmp|/cache (省略)
上記で指定できるオプション内容は以下の通り
オプション | 内容 |
---|---|
recycle:repository | 削除されたファイルの移動先ディレクトリ |
recycle:keeptree | ディレクトリ構造を維持してごみ箱に移動するか否か |
recycle:versions | 同名のファイルがごみ箱にある場合、別名(「Copy #x of ファイル名」)で保存するか否か |
recycle:touch | ファイルがごみ箱に移されたときに、ファイルのアクセス日を変更するか否か |
recycle:maxsize | ごみ箱に移動するファイルの上限をbyte数で指定 |
recycle:exclude | ごみ箱に移動せず即座に削除するファイルを指定 |
recycle:exclude_dir | 指定したディレクトリからファイルが削除された場合、ごみ箱に移動せず即座に削除 |
recycle:noversions | recycle:versionsの反対。両方のオプションを設定すると、こちらが優先される |
以上で以下のような挙動になることを確認
- Windows側からファイルを削除すると、.Trashディレクトリにファイルが異動する
- ユーザーHOMEの.Trashには、削除されたファイルを直接移動する
- 共有ディレクトリ(複数ユーザーがアクセスできるディレクトリ)の.Trashには、ユーザー名のディレクトリを作成してファイルを移動する => (ユーザー名)/(削除されたファイル)
共有ディレクトリのゴミ箱のアクセス権限問題に対する対処法(暫定)
共有ディレクトリの.Trashディレクトリは事前に作成した上でパーミッションを777に変更しておく
- .Trashディレクトリが存在しないと、最初にファイルを削除したユーザーの読み書き権限でディレクトリを作成し、アクセス権限の問題で別のユーザーのファイルが.Trashに移動出来ないため
- 766, 744では.Trashに移動できないことを確認
リモートのWindows共有ディレクトリをマウントする方法
remote Windows machine | winbox |
---|---|
share name on winbox | getme |
username | sushi |
password | yummy |
mount point | /mnt/mymount |
# mkdir /mnt/mymount/
- 手動でmountする方法
# mount -t cifs -o user=sushi,password=yummy //winbox/getme/ /mnt/mymount/
- boot時に自動的にmountする方法には大分して二通りある
- /etc/fstabにマウント情報を記述する(後述)
- /etc/auto.masterにマウント情報を記述する(後述)
boot時にリモートのWindows共有ディレクトリを自動的にmountする方法(引用元)
- 基本的な方法
- /etc/fstabにusernameとpasswordを直接記述
- よい方法
- usernameとpasswordを適当なテキストファイルに記述(例:/root/secret.txt)
- fstabのusernameとpasswordの代わりにcredentials=/root/secret.txtのオプションをつけて記述
- もっとよい方法
- マウント元のWindows共有のリンクが切れた場合にネットワークを停止(go down)させる
- /etc/auto.mymount を作成
- /etc/auto.master に以下の記述を追加
- /etc/auto.mymount に以下の記述を追加
- もう一つのもっとよい方法
- (基本的には上記と一緒なので省略)
//winbox/getme /mnt/mymount cifs user,uid=500,rw,suid,username=sushi,password=yummy 0 0
username=sushi password=yummy
//winbox/getme /mnt/mymount cifs user,uid=500,rw,noauto,suid,credentials=/root/secret.txt 0 0
/mymount /etc/auto.mymount
//winbox -fstype=cifs,rw,noperm,user=sushi,pass=yummy ://winbox/getme
SWAT
- モジュール名:samba-swat
- 設定ファイル:/etc/xinetd.d/swat
- disable=yes
- サービスxinetdの再起動:# service xinetd restart
- http://127.0.0.1:901/ => localhostは名前解決してくれない
- パラメータのヘルプが英語だけど網羅していてわかりやすい
- パラメータのコメントやデフォルト値の箇所をすべて削除するのでオリジナルをバックアップしておいたほうがよい。