OpenSUSE Leap 42: SMBサーバのSambaをインストールする

Sambaをインストールする手順を記載します。

1 Sambaのインストール

aptでsambaをインストールします。

> sudo zypper -n in samba
> sudo systemctl enable smb nmb
> sudo systemctl start smb nmb

Sambaのポートを開放します。

> firewall_open_service()
{
  for t in FW_CONFIGURATIONS_EXT FW_CONFIGURATIONS_DMZ
> FW_CONFIGURATIONS_INT; do
    sudo sed -e "s/^${t}=\"\(.*\)\"/${t}=\"\1 $1\"/g" \
         -i /etc/sysconfig/SuSEfirewall2
  done
  sudo systemctl restart SuSEfirewall2
}
> firewall_open_service samba-server

2 pdbedit

pdbeditでsambaへアクセスできるユーザを追加します。このユーザはLinux上に存在するユーザである必要があります。pdbeditで追加しようとするユーザがLinux上に存在しない場合は、useraddで追加しておく必要があります。

> sudo useradd -m <user>

pdbeditで<user>というユーザを追加します。

> sudo pdbedit -a <user>
new password:
retype new password:

-tオプションは標準出力からパスワードを設定することができます。

> yes "${PASSWD}" | sudo pdbedit -a hiroom2 -t

3 /etc/samba/smb.confの設定

ここではホームディレクトリと共有ディレクトリのアクセスを可能にする設定について記載します。

設定が完了した後、systemctlでsmbdとnmbdを再起動します。

> sudo systemctl restart smbd nmbd

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

Sambaはpdbeditで追加した<user>に対して/home/<user>を公開する仕組みを持っています。/home/<user>は各ユーザしかアクセスできないようになっています(Sambaアクセス時に以下の%Sに<user>が設定されます)。

valid users = %S

デフォルトでホームディレクトリ共有は有効になっています。ホームディレクトリ共有を無効にするには[homes]の設定をすべてコメントアウトしてください。

クライアントからは以下のURLにアクセスします。

\\<server>\<user>

3.2 全ユーザ共有ディレクトリ

以下の設定をsmb.confに追加することで、pdbeditで追加したユーザでディレクトリを共有できます。

> cat <<EOF | sudo tee -a /etc/samba/smb.conf
[share]
   comment = Share directory
   path = /var/lib/share
   read only = no
   guest only = no
   guest ok = no
   share modes = yes
EOF

共有ディレクトリのアクセス権は0777にします。

> sudo mkdir /var/lib/share
> sudo chmod 0777 /var/lib/share

クライアントからは以下のURLにアクセスします。

\\<server>\share