「インストール - Samba」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
115行目: 115行目:
Sambaユーザのパスワードを変更する場合、<code>smbpasswd</code>コマンドを使用する。<br>
Sambaユーザのパスワードを変更する場合、<code>smbpasswd</code>コマンドを使用する。<br>
  sudo smbpasswd <ユーザ名>
  sudo smbpasswd <ユーザ名>
<br>
次に、/etc/samba/smb.confファイルを以下のように編集する。<br>
sudo vi /etc/samba/smb.conf
<br>
# /etc/samba/smb.confファイル
public = no
# force user = pi  # コメントする
valid users = <登録するユーザ名>
<br>
最後に、Sambaを再起動する。<br>
sudo systemctl restart smbd
sudo systemctl restart nmbd
<br>
<br>
Sambaユーザのパスワードがサーバとは別管理になる理由は、<br>
Sambaユーザのパスワードがサーバとは別管理になる理由は、<br>

2021年7月18日 (日) 10:02時点における版

概要

ここでは、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の末尾に以下の記述を追加して保存する。

# 66行目あたり : 以下の2行を追記する
unix charset = UTF-8
dos charset = CP932

# 90行目あたり : ドメインを設定している場合は変更する
workgroup = WORKGROUP

# 96行目あたり : アクセス制限を行う場合は、アクセスを許可するIPアドレスを指定する
hosts allow = 192.168.1.10.

# 126行目あたり : 認証なしでアクセスする場合は追記する
security = <ユーザ名>
passdb backend = tdbsam
map to guest = Bad User

# 末尾に以下を追記する
[Share]
comment = Shared Directory on Samba
path = /home/<ユーザ名>/Common
guest ok = yes
read only = no
public = yes
browsable = yes
force user = pi


設定項目の簡単な説明を以下に記載する。

  • 設定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 service smbd restart
sudo service nmbd restart


ファイアーウォールを有効にしている場合は、Sambaサービスの許可が必要である。

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


SELinuxを有効にしている場合は、SELinuxコンテキストの変更が必要である。

sudo setsebool -P samba_enable_home_dirs on
sudo restorecon -R /home/share



動作の確認

エクスプローラまたは[ファイル名を指定して実行]にて、
下記のように、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に登録をする。

暗号化方式を統一することもできるが、セキュリティ面から標準の設定の方がよい。