3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(Linux)普通のsambaサーバ構築メモ

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 -