teematsu @ ウィキ
samba
最終更新:
teematsu
samba (バージョン3)
vi /etc/samba/smb.conf
encrypt passwords = true # パスワードを暗号化 passdb backend = tdbsam # パスワードデータベースの種類 security = user # ユーザー名とパスワードでローカル認証を行う設定 unix password sync = no # sambaのパスワードを変更したときにLinuxのは変更しない hide dot files = no # ドットで始まるファイルを隠しファイルとして扱わない disable netbios = yes # NetBIOSを使わない→マイネットワークに表示させない
fooという名前で共有フォルダを公開。読み取り専用。ゲストアクセス不可。特定のユーザー(user1, user2)のみアクセス可能。create mask, directory maskはファイル、ディレクトリを作る場合に使われるのでいらないはずだが、念のため。
[foo] read only = yes path = /path/to/foo guest ok = no create mask = 0700 directory mask = 0700 valid users = user1, user2
設定ファイルのチェックは
testparm (引数なし)
sambaアクセス時に使うユーザー名はLinuxユーザー名と同じ。Linuxでユーザーアカウントを作成しておけば、samba側で個別に追加する必要はない。→というわけではないらしい。sambaインストール時にLinuxユーザーをsambaに反映する処理が走るのか?
pdbedit -L で一覧を参照できる。
パスワードはsmbpasswdで設定。aさんのは、aさんがLinuxにログインしている状態で、引数なしでsmbpasswd。 初回はrootが実行しないと、はじかれるかもしれない(Could not connect to machine 127.0.0.1: NT_STATUS_LOGON_FAILURE)。
sudo smbpasswd a
パスワードなしにするには、rootがsmbpasswdでパスワード変更を実施し、パスワード空のままEnter。
ユーザーを追加するには
suto pdbedit -a foo
ファイル名の文字コードに関する設定
http://www.atmarkit.co.jp/flinux/special/samba3b/samba03.html
ゲストアクセス可能な共有
以下の条件下でゲストアクセス可能な共有を作りたい
- security = user が指定されている
- クライアント(Windows)でのログイン名と同じ名前のユーザーがLinux側に存在する。
- そのユーザーの場合も、Sambaにはゲストとしてアクセスしたい。
- そのユーザーについて、Sambaのパスワードを設定しない。smbpasswdによるパスワード設定をしない。
設定
[global] map to guest = Bad Password guest account = guestuser [foo] path = /path/to/foo guest ok = yes # 以下は任意 writable = yes browseable = yes create mask = 700 directory mask = 700
ゲストアクセスされた場合のLinux側のユーザーは事前に用意しておく。ここではその名前をguestuserとしている。
map to guest = Bad User とした場合、Windowsでのログイン名がLinux側にユーザーとして存在する場合はアクセスできない。存在しない場合はアクセスできるのかもしれない。これは、guest only = yes とした場合でも同じと思われる。
map to guest = Bad Password とすると、パスワードを間違えるとゲスト扱いになる。要認証でゲストは読み込みのみ可、のような共有が存在している場合は、パスワード入れ間違えに気づけず書き込みできずにトラブルになる心配もある。
smbfsを使ってマウント
aptitude install smbfs
※ smbfsを入れなくても mount -t cifs でマウントできるようだが、//host/share のhost部分を/etc/hostsで定義した場合にIPアドレスに解決されない現象があった。
mkdir /mnt/mountpoint
/etc/fstab
//host/share /mnt/mountpoint cifs ro,auto,nouser,async,username=myname,password=mypassword 0 0
ここでは、ro(読み込み専用)でマウント
参照
-
http://itmst.blog71.fc2.com/blog-date-20080507.html
"-o"でcodepageとiocharsetを指定(ここの説明ではcodepage=cp932としてるが、codepage,iocharsetともにutf8とするケースもある) - man mount.cifs