sambaインストールから初期設定まで


新しくファイル共有サーバーを立てる事となった。いままで適当にsambaの運用をしてきたので、設定方法を備忘録にまとめておく。

インストール

 # yum install samba 

ファイヤーウォールの設定

# vi /etc/sysconfig/iptables
↓この行を追加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

sambaの自動軌道設定とファイヤーウォールの再起動

# chkconfig smb on
# service smb start
SMB サービスを起動中: [ OK ]
# service iptables restart
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
#

Linuxのユーザー追加

# useradd -mk /dev/null -s /sbin/nologin hoge
このユーザーはsambaのファイル共有用のユーザーで、Linuxにログイン事は無い。-sオプションでログインシェルを/sbin/nologinに指定する。このshellはログインしたら直ちにログアウトする物で、ユーザーアカウントは必要だがログインさせたくない場合に指定する。-mk /dev/nullは/etc/skelの下にある、ログインユーザー用のカスタマイズファイルをホームディレクトリにコピーしないオプションである。

# man useradd <<一部抜粋>>
-m ホームディレクトリが存在しない場合には、ホームディレクトリを作成
する。 -k オプションを同時に指定すると skeleton_dir 以下のファイ
ルが、指定しないと /etc/skel 以下のファイルが、ホームディレク ト
リ に コピーされる。ホームディレクトリには、 skeleton_dir または
/etc/skel に含まれるすべてのディレクトリも作成される。 -k オプシ
ョンは、 -m オプションとともに使われる場合のみ有効である。デフォ
ルトでは、ホームディレクトリを作らず、ファイルのコピーもしない。

  • s shell

ユーザのログインシェルの名前。デフォルトではこのフィールドは空白
となり、システムがデフォルトのログインシェルを選ぶ。

samba用のパスワード設定

samba用パスワードはLinuxのパスワードとwindowsのパスワードの暗号化方法が違うため、その違いを吸収するために設定する。Windowsマシンからログインするときは、ここで設定したパスワードを使用してログインする。sambaはアクセスしてきたWindowsユーザーとLinuxユーザーを対応づけているので、sambaにアクセスすればLinuxのユーザーとしてファイルの操作が行える。

# smbpasswd -a hoge
New SMB password:
Retype new SMB password:
Added user hoge.

最後にSELinuxに対して、sambaのデーモンプロセスが個人ユーザーのホームディレクトリにアクセスできるように、アクセスを許可する。

# setsebool -P samba_enable_home_dirs on

以上でsmabaの最小設定は終了である。