Sambaをインストールする手順を記載します。
Table of Contents
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