Sambaの設定

SwatでのSambaの設定項目の多さに圧倒されています.これだけ項目が多いと,どういう機能があるのか把握できませんね.ちょっとずつ消化していこうと思います.今回次のような共有の項目を作成します.

共有名 ディレクト 利用できるユーザー その他
nas /home/nas smb
share /home/nas/share smb,nobody ログインせずに利用可能(guestとしてログイン)

事前にやること

Swatを利用することで/etc/smb.confが勝手に書き換えられます.あとで困らないよう事前にこのファイルのバックアップを取っておきます.次にWebブラウザからSwatを利用し,デフォルトで登録されている共有設定を利用不可能にします.バックアップはとってあるので,いらない項目は削除しましょう.

globalの設定

全体の設定をします.この設定は,個の共有設定やプリンタ設定に継承されます.先にここで設定しておくと,あとが楽になります.今回設定したなかで,代表的な項目は以下のとおり.ユーザーsmbは,次の項目で作成します.

  • guest account : nobody
  • valid users : smb
    • 認証が行われるユーザー.
    • 指定しなかった場合,登録されてる全てのSambaユーザーが認証可能.
  • hosts allow : 192.168.11.20
    • アクセスを許可するホスト.
    • セキュリティ的にあまり信用はできないけど,一応設定しておく
  • load printers :no
    • プリンターは使わない

Samba用ユーザーの作成

Samba用のアカウントは,既存のLinuxアカウントをそのまま利用することはできません.ですがSamba用のアカウントとLinux用のアカウントは同期させることができます.ここら辺がSambaのややこしいところです.Samba用のアカウントとLinux用のアカウントが対応してると考えると分かりやすいです.

さて,今回/home/nasはログインしてから利用することを想定しています.逆に/home/nas/shareは認証なしでゲストとして利用できるようにします.今回/home/nasを利用するためのユーザーを追加します.逆に/home/nas/shareを利用するゲストユーザーはユーザーnobodyです.nobodyはデフォルトで登録されているので,新規に登録しなくて良いはずです.登録されていない場合はsmbと同じ方法で追加します.

Samba用ユーザーの登録方法は,下記のようになります.

  1. Linuxアカウントを作成
  2. Sambaユーザーとしてもう一度登録する

今回追加するユーザーsmbは,Linuxアカウントとしても追加しますが,Linuxにログインする必要はありません.そこで,Linuxにはログインできないように設定します.これはセキュリティを向上させる意味でも重要です.

useradd -c 'for smb' -s /etc/nologin smb
passwd smb

cはただのコメント,Gはグループ,sはログイン時に使用するシェルを指定しています.上で説明したようにsmbはLinuxシステムにログインする必要がないので,ログインシェルにnologinを指定します.こうすると,Linuxにログインできなくなります.

次にこのユーザーをSamba用のユーザーとして登録します.この作業はコマンドでもできますがSwatからやると楽です.簡単なので省略します.

メモ

途中で設定がぐちゃぐちゃになったので,SambaとSwatをインストールしなおしました.以下のようにapt-getを実行すると,設定ファイルも一緒に削除してくれます.逆に--purgeの部分が抜けていると,設定ファイルは残ったままになります.これで,はまりました.

apt-get --purge remove samba