Fedora 28: SMBサーバのsambaをインストールする

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

1 sambaのインストール

sambaパッケージをインストールします。

$ sudo dnf install -y samba
$ sudo systemctl enable smb nmb

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

$ sudo firewall-cmd --add-service=samba --permanent
$ sudo firewall-cmd --reload

samba_share_tラベルなしでもホームディレクトリへのアクセスできるようにします。

$ sudo setsebool -P samba_enable_home_dirs on

今回は使用しませんが、以下の値も設定が必要になる場合があります。

smbd_anon_write ゲストユーザの書き込みを許可する
samba_export_all_ro samba_share_tラベルがなくても読み込めるようにする
samba_export_all_rw samba_share_tラベルがなくも書き込めるようにする

その他のSELinux向けのオプションはマニュアルを御覧ください。

2 pdbedit

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

$ sudo useradd -m <user>

pdbeditでsambaへアクセスできるユーザを追加します。

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

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

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

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

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

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

$ sudo systemctl restart smb nmb

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
$ sudo chcon -R -t samba_share_t /var/lib/share

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

\\<server>\share