LinuxでSambaを使って、いわゆる一般的なスタンドアロン共有フォルダサーバ(ローカルパスワード認証)を構築するためのメモです。
CentOS6.3で、Sambaのバージョンは 3.5 です。
まず、smb.confを編集します。
# vi /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = 任意の文字列
#↓sambaサーバ名
netbios name = natsumikan
#↓アクセスを許可するネットワークアドレスを指定
hosts allow = 127. 192.168.77.
log file = /var/log/samba/log.%m
#↓ログサイズ(KB)
max log size = 1024
#認証設定
security = user
(※認証方式には以下がある。
share:共有を一種類の固定ユーザを使ってアクセス。パスワードだけでアクセス制御。
user:共有を個別のアカウント(またはゲストユーザ)を使ってアクセス。一般的なスタンドアロンの共有フォルダ。今回はこれを使用。
ads:共有を個別のアカウントを使ってアクセスするが、認証はActiveDirectoryドメインで行う。
domain:共有を個別のアカウントを使ってアクセスするが、認証はWindowsドメインで行う。
server:共有を個別のアカウントを使ってアクセスするが、WindowsNT,Smabaで認証を行う。
#↓プリンタは使わないので
load printers = no
あとはsmb.confの続きのところに共有の設定を書いていきます。
(今回は smb.conf に共有の設定を書きましたが、本来は別ファイルに定義した方がよいです。詳しくは、
smb.confを編集して共有の作成をするべからずを参考に...)
(smb.conf続き)
[hoge]
comment = test_sahre
browseble = yes
path = /var/samba/share_dir/hoge
writable = yes
#↓読み書き可能なユーザ、またはグループを指定する
write list = @group1 , user1
#↓読み込みのみ可能なユーザ、またはグループを指定する
read list = user2
#↓アクセス可能なユーザ、またはグループを指定する
valid users = @group1 , user1 , user2
#↓明示的にアクセス拒否するユーザ、またはグループを指定する
invalid users
#↓ファイル作成時のマスクを8進数で設定。規定値は744
create mask = 777
#↓ディレクトリ作成時のマスクを8進数で設定。規定値は755
directory mask = 777
#↓大文字、小文字が混在する場合、全て小文字とみなす
default case = lower
#↓大文字、小文字が異なっていても区別せず同一ファイルとしてみなす
case sensitive = no
#↓Windows側が大文字、小文字を区別した場合、それに従う
preserve case = yes
(※グループを指定する時はグループ名の先頭に「@」が必要。)
security = user (ローカル認証)の場合は、共有フォルダにアクセスするためのUnixユーザを作成しておく必要があります。
共有フォルダアクセスだけが目的のユーザあれば、ホームディレクトリ必要ない+シェルログインさせる必要ないユーザを作成すればセキュリティ的にもいいでしょう。
以下のようにして、ホームディレクトリ必要ない+シェルログインさせる必要ないユーザを作成できます。
↓Unixユーザを作成
# useradd -d /dev/null -s /sbin/nologin username
↓Unixユーザのパスワード作成
# passwd username
↓sambaのアカウントを作成し、パスワードを設定
# smbpasswd -a username
New SMB password: (パスワード入力)
Retype new SMB password:(パスワード入力)
任意のユーザのパスワード変更する時は以下のコマンドにします。
# smbpasswd ユーザ名
sambaユーザ一覧を表示するには以下コマンドを使います。
# pdbedit -L
共有フォルダへのアクセスをグループ単位で制御するためには、グループを追加し、グループにユーザを所属する必要があります。
# groupadd gp_piyo ←グループ作成
# usermod -G gp_piyo user_a ←グループにユーザ追加
余談ですが、現在Samba接続しているセッション一覧を表示するにはsmbstatusコマンドでわかるようです。
# smbstatus
Unknown parameter encountered: "browseble"
Ignoring unknown parameter "browseble"
Samba version 3.5.10-125.el6
PID Username Group Machine
-------------------------------------------------------------------
3063 user_a user_a test-machine (::ffff:192.168.77.99)
Service pid machine Connected at
-------------------------------------------------------
hoge 3063 test-machine Fri Oct 5 00:23:45 2012
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
3063 502 DENY_NONE 0x100081 RDONLY NONE /var/samba/share_dir/hoge . Fri Oct 5 00:23:45 2012
慣れれば簡単に構築できます。
参考:
Sambaサーバの設定
ASCII.jp:ファイルサーバの文字化けの解消方法は?|サーバトラブル解決のセオリー
利用ユーザの作成・削除
ユーザ・グループの管理 - Technical Tips -