ウェブサイト検索

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

関連記事: