Sambaサーバの設定

Sambaのインストールと初期設定、ユーザやグループの管理を簡単に紹介して、Sambaでのファイル共有の設定方法を紹介します。

検証環境にはCentOS-5を利用しました。

なお、ユーザ数が多い場合などには、ユーザ管理が容易に行えるSamba+OpenLDAP構成を推奨します。

この設定方法は、Samba+OpenLDAPでファイルサーバをご覧ください。

 

 

Sambaのインストール

Sambaは、CentOS-5標準のパッケージとして提供されていますので、ここではそれを利用します。

yum install samba

 

起動には、以下のコマンドを利用します。

/etc/init.d/smb start
/etc/init.d/nmb start

 

自動起動の設定は、以下のコマンドで行います。

chkconfig smb on
chkconfig nmb on

 

 

Sambaの初期設定

Sambaの初期設定を/etc/smb.confで行います。

ここでは、共有の設定は行わず、Sambaが稼働するに最低限必要な設定をしてあります。

[global]
	unix charset =	UTF-8 <---UNIX上の文字コード
	display charset = UTF-8 <---UNIXコマンドやSWATでの表示文字コード
	dos charset = CP932 <---Windowsクライアントの文字コード
	passdb backend = tdbsam  <---ユーザ情報管理用バックエンドDB
	netbios name = FILE <---NetBIOS名
	workgroup = UNIXLIFE <---ワークグループ
	unix extensions = no <---MacOSX向け設定

	unix password sync = yes <---LinuxパスワードとSambaパスワードを同期
	pam password change = yes <---LinuxパスワードとSambaパスワードを同期

 

 

Sambaのユーザ管理

Sambaは、PAM認証を利用します。そのため、Sambaを利用するユーザは、LinuxのユーザアカウントとSambaのユーザアカウントの両方の設定が必要になります。

 

Linuxアカウントの管理

Linuxにユーザアカウントとグループを作成します。

なお、Sambaを利用するのみのユーザの場合、Linuxにログイン出来ない方が良いでしょう。

ここでは、ユーザ=user1、グループ=fileuserを作成します。

 

グループの作成

gourpadd -g 500 fileuser

 

ユーザアカウントの作成

useradd -g 500 user1

 

ユーザアカウントのパスワード設定

passwd user1

その他、Linuxのグループやユーザの管理方法については、省略致します。

 

Sambaアカウントの管理

Linuxのアカウント登録が終了したら、Sambaのユーザ登録を行います。

ここでは、ユーザ管理に関する主なコマンドを紹介します。

 

アカウントの作成

ユーザを作成する場合は、ユーザの作成とパスワードの設定が必要です。

例)ユーザ=user1を追加

pdbedit -a user1

 

パスワードの設定

smbpasswd user1

 

アカウントの表示

登録済みユーザアカウント情報を参照する。

pdbedit -v user1

 

登録済みユーザアカウントの一覧を表示する

pdbedit -l

 

アカウントの削除

pdbedit -x user1

 

 

Sambaサーバへのアクセス制限

Sambaサーバへのアクセス制限の設定です。

 

Sambaサービスを提供するインタフェースを限定する

例えば、eth0とeth1を持ったサーバがあるとします。

Sambaのサービスをeth0インタフェース側でのみ提供する場合には、以下のように設定します。

[global]
interfaces = 127.0.0.1 eth0
bind interfaces only = yes

 

 

Sambaサービスを提供するネットワークを限定する

Sambaのサービスを192.168.1.0/24でのみ提供する場合には、以下のように設定します。

[global]
hosts allow = 192.168.1.0/255.255.255.0

 

 

ファイル共有の設定

ここでは、Sambaでのファイル共有設定を解説します。

設定は、/etc/samba/smb.confに追記する形で行います。

 

ホームディレクトリの共有

Sambaでは、ユーザのホームディレクトリを共有として提供する事が可能です。

設定例は以下の通りです。

[homes]
	comment = %U's Home Directoris
	read only = no <---読み書き可能にする
	browseable = no <---[homes]という共有は提供しないため、noとする

 

 

ユーザで限定した共有

共有ディレクトリで、アクセス出来るユーザを限定する場合になります。

[working] <---workingという共有を作成
	comment = Working Directoris
	path = /var/samba/working <---ディレクトリの実態Pathを設定
	read only = no <---読み書き可能にする
	browseable = yes <---共有を表示する
	write list = user1 user2 <---読み書き可能なユーザを指定
	read list = user3 <---読み込みのみ可能なユーザを指定
	valid users = user1 user2 user3 <---アクセス可能なユーザを指定

この場合、user1、user2、user3が、この共有にアクセス可能となります。

また、user1、user2は共有に対して読み書き可能で、user3は読み込みのみ可能です。

 

 

グループで限定した共有

アクセス制限をユーザで指定するのは、運用を考えるとなかなか大変です。

そこで、グループによるアクセス制限をかけた共有の設定方法を記載します。

[devel] <---develという共有を作成
	comment = Devel Directoris
	path = /var/samba/devel <---ディレクトリの実態Pathを設定
	read only = no <---読み書き可能にする
	browseable = yes <---共有を表示する
	write list = @devel <---読み書き可能なグループを指定
	read list = @test <---読み込みのみ可能なグループを指定
	valid users = @devel @test <---アクセス可能なグループを指定

この場合、develとtestグループに所属するユーザが、この共有にアクセス可能となります。

また、develグループに所属するユーザは共有に対して読み書き可能で、testグループに所属するユーザは読み込みのみ可能です。

 

 

所属グループの共有のみ可視化する

通常、browseable = yesとなっている共有は、アクセス権が無くても全ユーザに表示されますので、共有数が増えてくると少々煩わしいくなります。

そこで、特定のグループに所属するユーザのみに共有を表示する設定を紹介します。

ここでは、keiriグループに所属するユーザのみ、共有keiriが可視化されるように設定します。

/etc/samba/smb.conf

[global]
	include = /etc/samba/%G.conf

 

設定が出来たら、includeしている%G.confを作成します。

%Gは、プライマリグループ値に置き換えられますので、ここでは、/etc/samba/keiri.confを作成する事になります。

/etc/samba/keiri.conf

[keiri]
	comment = Keiri Directoris
	path = /var/samba/keiri
	read only = no
	browseable = yes
	write list = @keiri
	valid users = @keiri

この設定でkeiriグループのユーザのみに共有が可視化され、他のグループに所属するユーザには見えなくなります。

 

 

共有設定に関連する主なオプション

共有を作成する場合に利用出来る、主なオプションを記載します。

 

アクセス制限

共有にアクセス制限をするためのオプションです。

項目 解説
write list 読み書き可能なユーザ、またはグループを指定する
read list 読み込みのみ可能なユーザ、またはグループを指定する
invalid users 明示的にアクセス拒否するユーザ、またはグループを指定する
valid users アクセス可能なユーザ、またはグループを指定する

 

パーミッションの設定

ファイルやディレクトリが作成された場合の、アクセス権に関するオプションです。

項目 解説
create mask ファイル作成時のマスクを8進数で設定。規定値は744
directory mask ディレクトリ作成時のマスクを8進数で設定。規定値は755
force create mask ファイル作成時に強制的に付与したいマスクを8進数で設定
create maskの処理後に実行されます
force directory mask ディレクトリ作成時に強制的に付与したいマスクを8進数で設定
directory maskの処理後に実行されます
force user ファイル作成時に指定したユーザ権限を強制的に使用します
force group ディレクトリ作成時に指定したグループ権限を強制的に使用します

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">