Debian 9 Stretch LinuxでSambaサーバー共有を設定する方法
目的
目的は、MS Windows クライアントマシンを介して Samba シェアへのアクセスを提供するために、Debian 9 Stretch Linux で Samba サーバーの基本設定を実行することです。
オペレーティングシステムとソフトウェアのバージョン
- オペレーティングシステム: – Debian 9 Stretch
- ソフトウェア: – Samba 4.5.8-Debian
要件
あなたのDebianシステムへの特権アクセスが必要です。
難しさ
イージー
協定
- # – 指定されたLinuxコマンドは、rootユーザーとして直接実行するか、
sudoコマンドを使用して実行する必要があります。 - $ – 一般的な非特権ユーザーとして実行される必要があるLinuxコマンドを要求します
シナリオ
以下の構成手順は、次のシナリオと事前に構成された要件を前提とします:
- サーバーとMS Windowsクライアントは同じネットワーク上にあり、両者間の通信を妨げるファイアウォールは存在しません。
- MS Windowsクライアントはホスト名
でsambaサーバーを解決できます
指示
インストール
サンバサーバーのインストールを始めましょう:
apt install samba
さらに、テスト目的でsambaクライアントをインストールすることも推奨されます。
apt install smbclient
サンバサーバーは現在、あなたのシステムで稼働しているはずです。
systemctl status smbd
● smbd.service - Samba SMB Daemon
Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2017-06-13 10:35:34 AEST; 3min 32s ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 1654 (smbd)
Status: "smbd: ready to serve connections..."
CGroup: /system.slice/smbd.service
├─1654 /usr/sbin/smbd
├─1655 /usr/sbin/smbd
├─1656 /usr/sbin/smbd
└─1659 /usr/sbin/smbd
デフォルトのサンバ設定
主要なSambaの設定ファイルは/etc/samba/smb.confと呼ばれています。smb.conf設定ファイルを編集する前に、元の設定ファイルのバックアップを作成し、現在の設定に関連する行を新しいsmb.confファイルに抽出しましょう:
cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
grep -v -E "^#|^;" /etc/samba/smb.conf_backup | grep . > /etc/samba/smb.conf
あなたの新しい /etc/samba/smb.conf には以下が含まれているはずです:
cat /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes
[homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
Sambaサーバーを再起動し、SMBクライアントを使用してすべてのエクスポートされたSambaグループを確認してください:
systemctl restart smbd
smbclient -L localhost
WARNING: The "syslog" option is deprecated
Enter root's password:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Samba 4.5.8-Debian)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
Server Comment
--------- -------
LASERPRINTER
LINUXCONFIG Samba 4.5.8-Debian
Workgroup Master
--------- -------
WORKGROUP LINUXCONFIG
ユーザーを追加
Sambaには独自のユーザー管理システムがあります。しかし、Sambaのユーザーリストに存在するユーザーは、/etc/passwdファイルにも存在する必要があります。このため、Sambaの新しいユーザーを作成する前に、useraddコマンドを使用して新しいユーザーを作成してください。システムの新しいユーザー(例:linuxconfig)が終了したら、smbpasswdコマンドを使用して新しいSambaユーザーを作成します:
smbpasswd -a linuxconfig
New SMB password:
サンバホームディレクトリ共有
デフォルトでは、すべてのホームディレクトリは読み取り専用としてエクスポートされ、browseable ではありません。このデフォルトの設定を変更するには、現在の homes シェア定義を次のように変更します:
[homes]
comment = Home Directories
browseable = yes
read only = no
create mask = 0700
directory mask = 0700
valid users = %S
毎回 /etc/samba/smb.conf 設定ファイルに変更を加えたら、サーバーの samba デーモンを再起動することを忘れないでください。
systemctl restart smbd
サンバパブリック匿名共有
以下のSamba定義は、任意のユーザーが/var/samba/ディレクトリ内のSamba共有にデータを読み書きできるようにします。まず、新しいディレクトリを作成し、それを誰でもアクセスできるようにします:
mkdir /var/samba
chmod 777 /var/samba/
次に、/etc/samba/smb.conf サンバ設定ファイル内に新しいサンバ共有定義を追加します:
[public]
comment = public anonymous access
path = /var/samba/
browsable =yes
create mask = 0660
directory mask = 0771
writable = yes
guest ok = yes
サンバサーバーデーモンを再起動します:
systemctl restart smbd
サンバ共有をマウントする
さて、MS Windows マシンに注意を向け、新しい Samba 共有ディレクトリをネットワークマップします。まず、\samba-server コマンドを実行して、利用可能なすべての共有をリストアップします:
付録
Sambaユーザーの一覧:
pdbedit -w -L
Sambaユーザーを削除する:
pdbedit -x -u username