samba構築手順(パスワードなしでアクセスする方法)
samba構成イメージ
sambaのインストール
sambaのインストールはaptやyumなど利用されているデストリビューションに応じたものでインストールします。
Ubuntuの場合
sudo apt install samba
CentOSの場合
sudo yum install samba
sambaで公開するディレクトリを作成
sambaで公開するディレクトリを作成します。
ここでは、「/xxx/share」というディレクトリを例にすすめます。
mkdir /xxx/share
chmod 777 /xxx/share
sambaアクセス用ユーザ作成
sambaアクセス用にユーザを準備します。
ここでは、「samba」というユーザを作成する例ですすめます。
Linuxユーザを作成
useraddコマンドでsambaユーザを作成します。
sudo useradd -s /bin/bash -m samba
sambaユーザにパスワードを設定します。
sudo passwd samba
samba用ユーザのパスワード設定
UbuntuとCentOSでコマンドが異なりますが、先ほど作成したsambaユーザにsambaパスワードを設定します。
Ubuntu
sudo smbpasswd -a samba
CentOS
sudo pdbedit -a samba
samba設定ファイルバックアップ
smb.confファイルを編集する前にバックアップを取っておきます。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Sambaサービスの停止
smb.confの編集前に、サービスが起動している場合は停止します。
sudo systemctl stop smb
もし、「Failed to stop smb.service: Unit smb.service not found.」のエラーが発生した場合はサービス名が「smb」ではない可能性があります。
以下の記事を参考にしてみてください。
samba設定ファイル編集
作成した公開用ディレクトリをWindows側からパスワードなしでアクセスできるように設定します。
smb.confをエディタで開きます。
sudo vim /etc/samba/smb.conf
追加箇所は[global]と[share]の2箇所です。
[global]
#guestユーザにマッピング
map to guest = Bad User
guest account = samba
末尾に以下を追加
[share]
#ディレクトリパス
path = /xxx/share
#ブラウザ表示
browseable = yes
#書き込み可能
writable = yes
read only = no
#ゲストアクセスOK
guest ok = yes
guest only = yes
#作成したファイル・ディレクトリのアクセス権
create mask = 777
directory mask = 777
smb.confの構文チェック
smb.confの設定が完了したら、構文チェックのコマンドで確認します。
testparm
設定に間違いがなければ以下のようなメッセージが表示され、設定情報が表示されます。
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
sambaのポート445の開放
sambaは標準でTCPの445番ポートを使用しますので、ファイアウォールを設定しアクセスできるようにします。
ここでは、ufwを利用してファイアウォールの設定します。
ufwが有効になっていない場合はまず、以下のコマンドで有効化しましょう。
sudo ufw enable
ufwを有効にしたら、次は445番ポートを開放します。
sudo ufw allow 445/tcp
statusコマンドで445番がALLOWとなっていることを確認しましょう。
sudo ufw status
状態: アクティブ
To Action From
-- ------ ----
445/tcp ALLOW Anywhere
445/tcp (v6) ALLOW Anywhere (v6)
設定に問題がなければ、reloadコマンで再読込を行い設定を有効にします。
sudo ufw reload
sambaサービスの再起動
systemctl restart smb
sambaサービスの自動起動設定
sudo systemctl enable smb
Windowsのエクスプローラでアクセスして確認する
sambaの構築が無事完了していれば、
\\[sambaサーバのip]\share
にアクセスすると、ユーザ、パスワードの入力ウィンドウが表示されるアクセスできるはずです。