samba 3.5 をインストールした その2

2012/02/15

インストールについては、その1を見てください。

今回の実際のフォルダ構成と、設定ファイルを忘備録的に載せておきます。

sambaで構築して共有フォルダにアクセスするのは、Windows XP、Vista、7 32bit、7 64bit、Mac OSXの各バージョンのPC。

アカウントについては、IDが、user1~で、グループは全部publicと同じにしておく。

フォルダ構成は、下記のとおり。

/home/public2 # 共有フォルダのルート。

+– public # みんなで、読み書きするフォルダ。

+– user1 # user1用のフォルダ、user1のみ、読み書きできて、他のユーザーは、読むだけできる。

+– user2 # user2用のフォルダ、user2のみ、読み書きできて、他のユーザーは、読むだけできる。

/home/public2 は、パーミッション750。所有者はrootでグループは、public。
/home/public2/public は、パーミッション770。所有者はrootでグループは、public。
/home/public2/user1 は、パーミッション750。所有者はuser1でグループは、public。

のような形で権限を付与しておく。

smb.conf のファイル内容は下記のとおり

[global]
workgroup = WORKGROUP
server string = public Samba Second
netbios name = smb2
hosts allow = 127. 192.168.1.
unix extensions = no
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = no
disable spoolss = yes
show add printer wizard = No
dns proxy = No
ldap ssl = no
unix charset = UTF-8
display charset = UTF-8
dos charset = CP932
[public2]
comment = public Share Space2
path = /home/public
public = yes
writable = yes
write list = +public
valid users = +public
inherit permissions = yes

MacとWindowsが混在してアクセスする場合、unix extensions はnoにしておかないと、Macで保存したファイルのパーミッションが、inherit permissions、create mask、force create mode などを軽く無視して、644とかになるファイルが出てくる。無視するファイルはMacのシステムファイルがくっついたファイルみたい。

veto files = /.DS_Store/.??*/
delete veto files = yes

を指定すると、Macのシステムファイルの.DS_Storeと.で始まる2文字以上のファイルを表示しないようにできます。
delete veto files は、フォルダ削除に一緒に消すかどうからしいです。
指定すると確かに、ファイルは見えなくなりますが、 マッチの処理で処理が多少重いようで、反応が悪くなります。
Windowsからは特に問題ありませんでしたが、今回のサーバーのスペックが低いせいか、Macからだとファイルが使用中でコピーできないというエラーが頻発したので、最終的にはコメントアウトしました。どうせ隠しファイルなので、Windowsの初期設定だと見えないしね。

Macで共有フォルダへのエイリアスを作成する場合は、フォルダ名が同じエイリアスはうまく作れないようです。
最初はpublicというフォルダ名にしていたのですが、publicはすでに稼働中だったので、public2にしました。

今回のようなフォルダ構成にする場合は、 create mask、directory maskを設定すると各ユーザー用スペースも同じパーミッションになってしまうので向いていない。inherit permissionsを使うのが正解。

dns proxy、ldap sslは、必要かどうか検証していない。とりあえず前設定してたので、そのまま使った。


samba 3.5 をインストールした

2012/02/15

Centos 6.2をインストールしたサーバーに、sambaを入れてみた。というかsambaとして使うのがこのサーバの目的。

前にsamba3.0を入れかけてたので、それを見ながら作業した。

まず、yumにインストール

# yum -y install samba

現時点では、samba 3.5.10がインストールされる。

入れ終わったら、念のため、バージョン確認してみる。ちなみに、バージョンの確認は、

# smbd -V

でできる。

smb.confを変更する。

smb.conf は、/etc/samba/smb.conf にある。

コメントで説明を書いているが、#があると、その1行全部がコメント扱いになるという記事があった(未検証)ので、コメントは削除した方がいいかもしれない。

まず、[global]セクションの変更

workgroup = WORKGROUP # PCに合わせる
server string = Samba second # ネットワークコンピュータで一覧の時の説明に使われる
netbios name = smb2 # ネットワークコンピュータの一覧の時のサーバ名で使われる
hosts allow = 127. 192.168.1. # 接続を許可するIPアドレス。127.0.0.0/8 と 192.168.1.0/24 を許可

log file = /var/log/samba/log.%m # ログファイルの場所
max log size = 50 # ログファイルの最大容量。KB単位

security = user # ユーザー認証を行う。shareだと誰でもウェルカム
passdb backend = tdbsam # パスワード認証方式。TDB形式のデータベースを指定というか初期値のままでok

unix charset = UTF-8 # ここから3つで文字コードの設定。unixがシステムの、displayがブラウザ表示用、dosがwindows用らしい
display charset = UTF-8
dos charset = CP932

unix extensions = no # macがsambaに参加するときはこれを入れておかないと作成されるファイルの権限の問題ですごい苦労する。

Printing Options と[printers]にあるプリンタ用の設定を全部コメントアウトし、

disable spoolss = yes

を追加すると、windowsのネットワーク一覧で、プリンタ関係の表示されなくなるっぽい。

[homes]セクションに各ユーザーごとの専用領域の設定を入れる。今回は使用しないので、すべてコメントアウト

[public]セクションについては、まず、かっこの中の名称が共有フォルダ名になる。pathと合わせる必要ない。

public = yes # yesにすると、認証なしになるらしい。と思ってたけど、yesで認証されてる
comment = public space # コメントだけど、どこにでるのか今一つ不明
path = /home/public # publicとして公開するスペースのディレクトリ
writable = yes # 書き込み可否
write list = +public # 書き込み権限を設定。+をつけるとグループ名、つけなければユーザー名、スペースで区切る。
valid users = +public # 上の設定と違いが今ひとつわからない。
inherit permissions = yes # パーミッションを継承する。

ユーザーを追加する。その際 -g でグループを指定していると楽かもしれない

# useradd -g グループ名 testuser

で、testuserを追加して、pdbeditでsambaユーザーの設定をする

# pdbedit -a -u testuser

smb.confを変更したら

# /etc/rc.d/init.d/smb reload

で設定を読み直す。

ファイアーウォールの設定も必要です。
GUI環境があれば、管理のファイアーウォールからsambaにチェックを入れれば、完了です。簡単です。

最後に、(まぁ最後じゃなくてもいいんだけど)
SELinuxをどうにかします。
正しく設定してもいいんですが、なかなか複雑なので、習熟に時間がかかりそうです。あと、家庭内で使ってるとか、数人でLAN内で使ってるとかそんなのであれば、無理に有効にしなくてもいいみたいです。ということで、無効にしました。そのうち試してみます。

getenforce

で、現在の設定がわかります。初期値のままであれば、

> Enforcing

と出ると思います。

setenforce 0

で一時的に無効にできます。
永続的に、無効にするには、configをいじります。

# vi /etc/sysconfig/selinux
で、SELinuxの設定ファイルを開いて
SELINUX=disabled
に変更します。再起動かければ、無効になります。

実際のフォルダ構成と、設定ファイルは、次回まとめます。