「インストール - Samba」の版間の差分
35行目: | 35行目: | ||
<br> | <br> | ||
smb.confの末尾に以下の記述を追加して保存する。<br> | smb.confの末尾に以下の記述を追加して保存する。<br> | ||
# | # [global]セクションの直下に、以下の2行を追記する | ||
unix charset = UTF-8 | unix charset = UTF-8 | ||
dos charset = CP932 | dos charset = CP932 | ||
display charset = UTF-8 | |||
# | # [global]セクションのworkgroupキー | ||
# ドメインを設定している場合は変更する | |||
workgroup = WORKGROUP | workgroup = WORKGROUP | ||
# | # [global]セクションのhosts allowキーおよび各共有設定のセクションに追記 | ||
hosts allow = 192.168.1. | # アクセス制限を行う場合は、アクセスを許可するIPアドレスを指定する | ||
hosts allow = 192.168.2. 192.168.1.20/24 | |||
# 126行目あたり : 認証なしでアクセスする場合は追記する | # 126行目あたり : 認証なしでアクセスする場合は追記する | ||
51行目: | 54行目: | ||
# 末尾に以下を追記する | # 末尾に以下を追記する | ||
[ | [Common] | ||
comment = Shared Directory on Samba | comment = Shared Directory on Samba | ||
path = /home/<ユーザ名>/Common | path = /home/<ユーザ名>/Common | ||
read only = no | read only = no | ||
browsable = yes | browsable = yes | ||
force user = | public = no | ||
guest ok = no | |||
available = yes | |||
valid users = <Sambaに登録したユーザ名1> <Sambaに登録したユーザ名2> <Sambaに登録したユーザ名3> ... | |||
#force user = <サーバのユーザ名> | |||
<br> | <br> | ||
設定項目の意味を、以下に示す。<br> | |||
* 設定1 : 下記2項目をセットで設定すると、piユーザ以外はログインできない。<br> | * 設定1 : 下記2項目をセットで設定すると、piユーザ以外はログインできない。<br> | ||
*: available = yes | *: available = yes | ||
67行目: | 72行目: | ||
*: force user = pi | *: force user = pi | ||
* 設定3 : パスワードなしでアクセスするためguestを許可する。Publicとguest okは同じ意味のパラメータである。 | * 設定3 : パスワードなしでアクセスするためguestを許可する。Publicとguest okは同じ意味のパラメータである。 | ||
*: | *: public = yes | ||
*: guest ok = yes | *: guest ok = yes | ||
<br> | <br> | ||
Sambaを再起動する。<br> | |||
sudo | sudo systemctl restart smbd | ||
sudo | sudo systemctl restart nmbd | ||
<br> | <br> | ||
ファイアーウォールを有効にしている場合は、Sambaサービスの許可が必要である。<br> | ファイアーウォールを有効にしている場合は、Sambaサービスの許可が必要である。<br> | ||
sudo firewall-cmd --add-service=samba | sudo firewall-cmd --permanent --add-service=samba | ||
sudo firewall-cmd --reload | sudo firewall-cmd --reload | ||
<br> | <br> | ||
SELinuxを有効にしている場合は、SELinuxコンテキストの変更が必要である。<br> | SELinuxを有効にしている場合は、SELinuxコンテキストの変更が必要である。<br> | ||
sudo setsebool -P samba_enable_home_dirs on | sudo setsebool -P samba_enable_home_dirs on | ||
sudo restorecon -R /home/ | sudo restorecon -R /home/<ユーザ名>/Common | ||
<br><br> | <br><br> | ||
2021年7月18日 (日) 10:31時点における版
概要
ここでは、Sambaを使用してファイルサーバを構築する。
ネットワークに接続していないと、Sambaをインストールしても外部からアクセスができないので、既存のネットワークに接続すること。
必ず、Linuxを固定IPアドレスに設定すること。(ここでは192.168.1.5とする)
Sambaをインストール
まず、最新パッケージリストを取得するため、以下のコマンドを実行する。
# CentOS sudo yum update # SUSE sudo zypper update # Raspberry Pi sudo apt-get update
次に、Sambaをインストールするため、以下のコマンドを実行する。
# CentOS sudo yum install samba samba-client # SUSE sudo zypper install samba samba-client # Raspberry Pi sudo apt-get install samba
Sambaの設定
ホームディレクトリにSambaで使用する共有ディレクトリを作成する。
mkdir ~/Common
Samba の設定ファイルであるsmb.confを編集する。
sudo vi /etc/samba/smb.conf
smb.confの末尾に以下の記述を追加して保存する。
# [global]セクションの直下に、以下の2行を追記する unix charset = UTF-8 dos charset = CP932 display charset = UTF-8 # [global]セクションのworkgroupキー # ドメインを設定している場合は変更する workgroup = WORKGROUP # [global]セクションのhosts allowキーおよび各共有設定のセクションに追記 # アクセス制限を行う場合は、アクセスを許可するIPアドレスを指定する hosts allow = 192.168.2. 192.168.1.20/24 # 126行目あたり : 認証なしでアクセスする場合は追記する security = <ユーザ名> passdb backend = tdbsam map to guest = Bad User # 末尾に以下を追記する [Common] comment = Shared Directory on Samba path = /home/<ユーザ名>/Common read only = no browsable = yes public = no guest ok = no available = yes valid users = <Sambaに登録したユーザ名1> <Sambaに登録したユーザ名2> <Sambaに登録したユーザ名3> ... #force user = <サーバのユーザ名>
設定項目の意味を、以下に示す。
- 設定1 : 下記2項目をセットで設定すると、piユーザ以外はログインできない。
- available = yes
- valid users = pi
- 設定2 : どのユーザでログインしても、内部的にpiでログインして接続する。そのユーザ名とパスワードが求められる。
- force user = pi
- 設定3 : パスワードなしでアクセスするためguestを許可する。Publicとguest okは同じ意味のパラメータである。
- public = yes
- guest ok = yes
Sambaを再起動する。
sudo systemctl restart smbd sudo systemctl restart nmbd
ファイアーウォールを有効にしている場合は、Sambaサービスの許可が必要である。
sudo firewall-cmd --permanent --add-service=samba sudo firewall-cmd --reload
SELinuxを有効にしている場合は、SELinuxコンテキストの変更が必要である。
sudo setsebool -P samba_enable_home_dirs on sudo restorecon -R /home/<ユーザ名>/Common
動作の確認
エクスプローラまたは[ファイル名を指定して実行]にて、
下記のように、IPアドレスまたはホスト名を入力して、共有ディレクトリが表示できるか確認する。
\\192.168.1.5 または \\RASPBERRYPI
Sambaへのユーザ登録
Sambaは独自でユーザの管理をするので、Sambaへのユーザ登録をすることができる。
Sambaと通常サーバは、別々にユーザを管理するが、同一のユーザ名とパスワードで問題ない。
クライアントからSambaにアクセスしたときに、認証画面において、ユーザ名とパスワードを入力することになる。
Sambaのユーザ名とパスワードを登録する方法を、以下に示す。
ただし、登録できるユーザは、既にサーバに存在するユーザのみである。
また、Sambaのユーザ登録のコマンドは、Samba2.xではsmbpasswd
コマンド、Samba3.xではpdbedit
コマンドとなる。
# Sambaのユーザ名の一覧を表示 sudo pdbedit -L # 詳細なユーザ名の一覧を表示 sudo pdbedit -L -v # ユーザを登録する (パスワードを2回入力して設定する) sudo pdbedit -a <ユーザ名> # Sambaのユーザを削除する sudo pdbedit -x <ユーザ名>
Sambaユーザのパスワードを変更する場合、smbpasswd
コマンドを使用する。
sudo smbpasswd <ユーザ名>
次に、/etc/samba/smb.confファイルを以下のように編集する。
sudo vi /etc/samba/smb.conf
# /etc/samba/smb.confファイル public = no # force user = pi # コメントする valid users = <登録するユーザ名>
最後に、Sambaを再起動する。
sudo systemctl restart smbd sudo systemctl restart nmbd
Sambaユーザのパスワードがサーバとは別管理になる理由は、
Linuxのパスワード管理の暗号化方式と、Sambaのパスワード管理の暗号化方式が異なるためである。
Sambaは、Windowsのパスワード管理の暗号化に合わせているため、同一のユーザ名とパスワードであっても、Sambaに登録をする。
暗号化方式を統一することもできるが、セキュリティ面から標準の設定の方がよい。