sambaの設定
LstUpdate : 12/08/11
sambaを使い、ファイルサーバを構築します。
以下の環境で、sambaをセットアップしたときの情報を元に書いてます。
CentOS6.2(64bit)
sambaのバージョン : 3.5.10-125.el6
sambaはいろんなことができますが、ここでは、以下の方針でいきます。
・認証はローカル認証(security = user)のみ
・ファイルサーバー上のパーミッションは、グループで管理(登録するユーザーは全員おんなじグループに入る)
・・・というのが、私の自宅のローカルなファイルサーバーの設定です・・・w
もくじ
(1) インストール
(2) ログインユーザーの登録
(3) 設定ファイルを編集
(4) アクセスしてみる
以下のコマンドでインストール
yum install samba
これだけでOK。
sambaはいろいろな認証方式に対応しています。
ここでは、最も単純(?)で、1台のサーバーだけで完結するローカル認証(この呼び名でいいのかは不明w)を扱います。
ログインユーザを登録します。登録するユーザーは、Linux上にアカウントがないとだめ。なので、アカウントを作るところからやります。
以下のコマンドでalctailというユーザーをLinux上に作成し、sambaにパスワードを登録しています(なので、sambaでパスワードを求められたら)。
・ファイルサーバーアクセス用のグループを作成
groupadd alctail_group
・Linux上のアカウントを作成
useradd alctail
・alctailをalctail_groupに所属させる(これは、「(3) 設定ファイルを編集」でやるファイルのパーミッション上の理由。ほかの運用方法ならこんなことする必要はない)
usermod -G alctail_group alctail
・上記で作成したユーザーのsamba上のパスワードの登録
pdbedit -a -u alctail
上記コマンドを実行すると、パスワードを尋ねられますので、入力します。
sambaの設定ファイルを編集します。編集するファイルは以下のものです。
/etc/samba/smb.conf
既存のsmb.confファイルはやたらめったら長いですが、コメントが大半です。子面倒なので、全部削除して、書き直すでもよいかと。
設定例:
[global] dos charset = CP932 display charset = UTF-8 workgroup = ALCTAIL_GROUP server string = miranda file server(samba %v) log file = /var/log/samba/log.%m max log size = 50 unix extensions = No load printers = No disable spoolss = Yes hosts allow = 127., 192.168.11. [FileServer] comment = miranda file server path = /files/fileserver guest ok = no writable = yes printable = no valid users = @alctail_group force group = alctail_group create mask = 0660 directory mask = 0770
[global]の項目について。
windowsからアクセスする場合、「dos charset」と「display charset」の設定を上記にしないと文字化けするらしい。
「workgroup」には、好きな文字列を。ファイルサーバーにアクセスするwindows機のWORKGROUPはここに書いたものを設定する(必須ではないです)。
「hosts allow」を設定することで、接続元のIPアドレスを制限できます。制限不要の場合、コメントアウトすればよいかと。
ほかはデフォルトでよいかと思います。プリンター関連の設定はすべてOFFにしています(プリンターは使わないので)
[FileServer]の項目について
このFileServerと書いてある文字列は任意です。好きな名前にしてしまってよいです(クライアントがアクセスするとき、この名前でアクセスすることになる)。
pathのところで、ファイルサーバーとして公開するディレクトリのパスを指定します(ここでは「/files/fileserver」としている)。
alctail_groupに属する人しかアクセス出来ない。
ファイルの読み書きには認証が必要。
作成したファイルのパーミッションは常に0660、ディレクトリは0770になる。
というような設定です。
このあたりは、マニュアルをみながら、決めていくとよいと思います。
設定ファイルが書き終わったら「testparm」というコマンドでsmb.confの内容があっているかの確認ができます。
以下が例です(testparmコマンドを打ってから、一度enterキーを押下する必要があります。「Press enter to see a dump
of your service definitions」のあたりでいったん出力が止まる)。
[root@miranda samba]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[FileServer]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] dos charset = CP932 display charset = UTF-8 workgroup = ALCTAIL_GROUP server string = miranda file server(samba %v) log file = /var/log/samba/log.%m max log size = 50 unix extensions = No load printers = No disable spoolss = Yes hosts allow = 127., 192.168.11. [FileServer] comment = miranda file server path = /files/fileserver valid users = @alctail_group force group = alctail_group read only = No create mask = 0660 directory mask = 0770
設定ファイルがOKになったら、「service smb start」などとして、sambaのサービスを起動します。
windows機からの場合はエクスプローラから「\\<sambaを動かしているサーバのIPアドレス>\<smb.confで設定した[FileServer]の値>」でアクセスすると、IDとパスワードを求められます。入力してやると、アクセスできるはず。
Linux機からの場合は、一番簡単だと思われるのはファイルサーバーのディレクトリをマウントする方法。以下のコマンドで可能。
mount -t cifs -o username=alctail //192.168.11.33/FileServer /mnt
このコマンドで以下のようなエラーが出る場合、cifs-utilsをインストールすればOKみたい。「yum install cifs-utils」でインストールしてから再実行。
[root@chiki ~]# mount -t cifs -o username=alctail //192.168.11.33/FileServer /mnt mount: block device //192.168.11.33/FileServer is write-protected, mounting read-only mount: cannot mount block device //192.168.11.33/FileServer read-only