「Samba をスタンドアローンサーバーとして構成」の版間の差分

提供: 雑廉堂Wiki
(基本的なゲスト専用の smb.conf ファイルの作成)
(Setting ACLs on the Shared Directories)
 
(同じ利用者による、間の7版が非表示)
25行目: 25行目:
 
         guest only = yes
 
         guest only = yes
 
   
 
   
{{Imbox
+
{{imbox
| type = warning
+
| type = speedy
 +
| style = margin: 4px 2%;
 
| text = この例は、認証なしにアクセス出来る共有の定義です。ゲスト共有はセキュリティ上問題になり得ます。例えば、家や、学校や職場のネットワークといった異なったネットワークに接続されるノートパソコンです。ゲスト共有は慎重に使用し、認証されたユーザーでは決してゲスト共有を使用しないでください。
 
| text = この例は、認証なしにアクセス出来る共有の定義です。ゲスト共有はセキュリティ上問題になり得ます。例えば、家や、学校や職場のネットワークといった異なったネットワークに接続されるノートパソコンです。ゲスト共有は慎重に使用し、認証されたユーザーでは決してゲスト共有を使用しないでください。
 
}}
 
}}
  
= Creating a Basic authenticated access smb.conf File =
+
= smb.conf ファイルで基本の認証されたアクセスを作成する =
  
 
The following is a minimal configuration for a Samba standalone server:
 
The following is a minimal configuration for a Samba standalone server:
 +
 +
Samba スタンドアローンサーバーの最小構成を以下に示します:
  
 
  [global]
 
  [global]
43行目: 46行目:
 
         read only = no
 
         read only = no
  
 +
* <code>workgroup = xxxxxxxx</code> でワークグループ名を設定することができます。'xxxxxxxx' は必須です。もしパラメータが設定されていない場合、規定のワークグループ名として 'WORKGROUP' が使用されます。
 +
* 最小構成ではログのパラメータは必須ではありません。しかしながら、問題が発生した場合にログファイルを設定し、ログレベルを上げると役立ちます。
 +
* 上記は最小限の smb.conf ファイルですが、Unix と Samba の同期が維持されているかを確認することができる 'unix password sync = yes' のような他のパラメータを追加することができます。詳細は 'man smb.conf' を参照してください。
  
* You can set a workgroup name with <code>workgroup = xxxxxxxx</code>, where 'xxxxxxxx' is the required name. If the parameter isn't set, the default workgroup name 'WORKGROUP' will be used.
 
* The log parameters are not necessary for a minimal setup. However they are useful to set the log file and increasing the log level in case of problems.
 
* Whilst these are only minimal smb.conf files, you can add other parameters, such as 'unix password sync = yes' to ensure the Unix & Samba passwords are kept in sync. See 'man smb.conf' for more info.
 
  
  
  
= Creating a Local User Account =
+
= ローカルユーザーアカウントの作成 =
  
To provide authentication on a standalone host, you have to create the accounts locally on the operating system and additionally in the Samba database. By default, Samba uses the <code>tdbsam</code> back end and stores the database in the <code>/usr/local/samba/private/passdb.tdb</code> file. Optionally set a different location in the <code>smb.conf</code> file using the <code>passdb backend</code> parameter. See the <code>smb.conf 5</code> man page for details.
+
スタンドアローンホストで認証を提供するには、オペレーティングシステムでローカルに加えて、Samba データベースにアカウントを作成する必要があります。Samba は <code>tdbsam</code> バックエンドを使用して、<code>/usr/local/samba/private/passdb.tdb</code> ファイルにデータベースを保存します。任意で、<code>smb.conf</code> 内で <code>passdb backend</code> パラメータを使用して別の場所を設定することができます。詳細は <code>smb.conf 5</code> のマニュアルページを参照してください。
  
* Create a <code>demoUser</code> account on the local system:
+
 
 +
* ローカルシステムに <code>demoUser</code> アカウントを作成
  
 
  # useradd -M -s /sbin/nologin demoUser
 
  # useradd -M -s /sbin/nologin demoUser
  
:Omit the <code>-M</code> parameter if the user requires a home directory on this host. For Samba access, the account does not require a valid shell.
+
:もし、このホストでユーザーのホームディレクトリが必要な場合は、<code>-M</code>パラメータを省略してください。Samba がアクセスするのには、アカウントに有効なシェルは必要ありません。
  
* To enable the <code>demoUser</code> account on the local system:
+
 
 +
* ローカルシステムで <code>demoUser</code> アカウントを有効にする。
  
 
  # passwd demoUser
 
  # passwd demoUser
67行目: 72行目:
 
  passwd: password updated successfully
 
  passwd: password updated successfully
  
: Setting a local password is required to enable the account. Samba denies access if the account is disabled locally. Local log ins using this password are not possible if the account was created without a valid shell.
+
: アカウントを有効にするには、ローカルパスワードを設定することは必須です。Samba はローカルで無効にされたアカウントのアクセスを拒否します。もし、有効なシェルを使わずにアカウントを作成した場合、このパスワードを使用したログインは不可能になります。
  
* Add the <code>demoUser</code> account to the Samba database:
+
* <code>demoUser</code> アカウント Samba データベースに追加します
  
 
  # smbpasswd -a demoUser
 
  # smbpasswd -a demoUser
76行目: 81行目:
 
  Added user demoUser.
 
  Added user demoUser.
  
:The password assigned in these steps is the one used by the user to log in to the domain.
+
:この手順で割り当てられるパスワードは、ドメインにログインするためにユーザーが使用するパスワードです。
  
 +
= ローカルグループの管理 =
  
 
+
* <code>demoGroup</code> グループを作成するには:
 
 
 
 
= Local Group Management =
 
 
 
* To create a <code>demoGroup</code> group:
 
  
 
  # groupadd demoGroup
 
  # groupadd demoGroup
  
* To add the <code>demoUser</code> account to the group:
+
* <code>demoUser</code> アカウントをグループに追加するには:
  
 
  # usermod -aG demoGroup demoUser
 
  # usermod -aG demoGroup demoUser
  
 +
= 共有ディレクトリの作成 =
  
 
+
共有ディレクトリを作成:
 
 
 
 
= Creating the Shared Directories =
 
 
 
To create the shares directories:
 
  
 
  # mkdir -p /srv/samba/guest/
 
  # mkdir -p /srv/samba/guest/
 
  # mkdir -p /srv/samba/demo/
 
  # mkdir -p /srv/samba/demo/
  
 +
= 共有ディレクトリに ACL を設定する =
  
 
+
以下の POSIX パーミッションを設定します:
= Setting ACLs on the Shared Directories =
 
 
 
Set the following POSIX permissions:
 
  
 
  # chgrp -R demoGroup /srv/samba/guest/
 
  # chgrp -R demoGroup /srv/samba/guest/
115行目: 110行目:
 
  # chmod 2770 /srv/samba/demo/
 
  # chmod 2770 /srv/samba/demo/
  
This configures write access to  members of the <code>demoGroup</code> group in both directories. Other users have read access in the <code>/srv/samba/guest/</code> and no access in the <code>/srv/samba/demo/</code> directory. The SGID bit - represented by the first bit (<code>2</code>) in the mode set on the directories - inherits the group of the parent directory instead setting it to the users primary group when new files are created.
+
これは、 <code>demoGroup</code> グループのメンバーに、両方のディレクトリの書込みアクセスを構成します。他のユーザーは、<code>/srv/samba/guest/</code> に読込アクセス権を持っており、<code>/srv/samba/demo/</code> ディレクトリにはなんの権限も持っていません。ディレクトリにセットされているモードの最初のビット - (<code>2</code>) で表されている - SGID ビットは、ファイル作成時に、ユーザーのプライマリグループでセットする代わりに親ディレクトリのグループを引き継いでセットします。
 
 
For further information, see [[Setting_up_a_Share_Using_POSIX_ACLs|Setting up a Share Using POSIX ACLs]].
 
 
 
 
 
 
 
  
 +
詳細な情報については、[[Setting_up_a_Share_Using_POSIX_ACLs|Setting up a Share Using POSIX ACLs]] を参照してください。
  
 
= Starting Samba =
 
= Starting Samba =

2020年7月17日 (金) 11:03時点における最新版

はじめに

ホームネットワークのような小規模なネットーワークや、ドメインの一部ではないホスト上のフォルダ等を共有するために Active DirectoryNT4 Domain を設定したくない場合がよくあります。

下に続く文書では Samba スタンドアローンサーバー のセットアップ方法について説明します。

  • 匿名でアクセス可能な共有 (ゲストアクセス)
  • Samba ホストのユーザーデータベースに対する認証を必要とする共有

基本的なゲスト専用の smb.conf ファイルの作成

以下は、ゲストアクセスのみを許可する Samba スタンドアローンサーバーの最小構成です。

[global]
        map to guest = Bad User
        log file = /var/log/samba/%m
        log level = 1

[guest]
        # This share allows anonymous (guest) access
        # without authentication!
        path = /srv/samba/guest/
        read only = no
        guest ok = yes
        guest only = yes

smb.conf ファイルで基本の認証されたアクセスを作成する

The following is a minimal configuration for a Samba standalone server:

Samba スタンドアローンサーバーの最小構成を以下に示します:

[global]
        log file = /var/log/samba/%m
        log level = 1

[demo]
        # This share requires authentication to access
        path = /srv/samba/demo/
        read only = no
  • workgroup = xxxxxxxx でワークグループ名を設定することができます。'xxxxxxxx' は必須です。もしパラメータが設定されていない場合、規定のワークグループ名として 'WORKGROUP' が使用されます。
  • 最小構成ではログのパラメータは必須ではありません。しかしながら、問題が発生した場合にログファイルを設定し、ログレベルを上げると役立ちます。
  • 上記は最小限の smb.conf ファイルですが、Unix と Samba の同期が維持されているかを確認することができる 'unix password sync = yes' のような他のパラメータを追加することができます。詳細は 'man smb.conf' を参照してください。



ローカルユーザーアカウントの作成

スタンドアローンホストで認証を提供するには、オペレーティングシステムでローカルに加えて、Samba データベースにアカウントを作成する必要があります。Samba は tdbsam バックエンドを使用して、/usr/local/samba/private/passdb.tdb ファイルにデータベースを保存します。任意で、smb.conf 内で passdb backend パラメータを使用して別の場所を設定することができます。詳細は smb.conf 5 のマニュアルページを参照してください。


  • ローカルシステムに demoUser アカウントを作成
# useradd -M -s /sbin/nologin demoUser
もし、このホストでユーザーのホームディレクトリが必要な場合は、-Mパラメータを省略してください。Samba がアクセスするのには、アカウントに有効なシェルは必要ありません。


  • ローカルシステムで demoUser アカウントを有効にする。
# passwd demoUser
Enter new UNIX password: Passw0rd
Retype new UNIX password: Passw0rd
passwd: password updated successfully
アカウントを有効にするには、ローカルパスワードを設定することは必須です。Samba はローカルで無効にされたアカウントのアクセスを拒否します。もし、有効なシェルを使わずにアカウントを作成した場合、このパスワードを使用したログインは不可能になります。
  • demoUser アカウント Samba データベースに追加します
# smbpasswd -a demoUser
New SMB password: Passw0rd
Retype new SMB password: Passw0rd
Added user demoUser.
この手順で割り当てられるパスワードは、ドメインにログインするためにユーザーが使用するパスワードです。

ローカルグループの管理

  • demoGroup グループを作成するには:
# groupadd demoGroup
  • demoUser アカウントをグループに追加するには:
# usermod -aG demoGroup demoUser

共有ディレクトリの作成

共有ディレクトリを作成:

# mkdir -p /srv/samba/guest/
# mkdir -p /srv/samba/demo/

共有ディレクトリに ACL を設定する

以下の POSIX パーミッションを設定します:

# chgrp -R demoGroup /srv/samba/guest/
# chgrp -R demoGroup /srv/samba/demo/

# chmod 2775 /srv/samba/guest/
# chmod 2770 /srv/samba/demo/

これは、 demoGroup グループのメンバーに、両方のディレクトリの書込みアクセスを構成します。他のユーザーは、/srv/samba/guest/ に読込アクセス権を持っており、/srv/samba/demo/ ディレクトリにはなんの権限も持っていません。ディレクトリにセットされているモードの最初のビット - (2) で表されている - SGID ビットは、ファイル作成時に、ユーザーのプライマリグループでセットする代わりに親ディレクトリのグループを引き継いでセットします。

詳細な情報については、Setting up a Share Using POSIX ACLs を参照してください。

Starting Samba

Start the smbd daemon:

# smbd

Samba does not include start scripts. See your distribution's documentation how further information how to automatically start a service at boot time.



Testing the Share Access

  • Access the demo share as user demoUser:
# smbclient -U demoUser //SA/demo
Enter demoUser's password: Passw0rd
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba x.y.z]
smb: \> ls
  .                                   D        0  Sun Jan  3 21:00:00 2016
  ..                                  D        0  Sun Jan  3 19:00:00 2016
  demo.txt                            A        0  Sun Jan  3 21:00:00 2016

		9943040 blocks of size 1024. 7987416 blocks available
smb: \> quit
  • Access the demo share as guest. The access is denied:
# smbclient -U guest //SA/demo
Enter guest's password: 
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba x.y.z]
tree connect failed: NT_STATUS_ACCESS_DENIED



Advanced share settings

This section describes some advanced share configuration parameters. For further information about the used parameters, see the smb.conf (5) man page.


Using the force Parameters

[demo]
        path = /srv/samba/demo/
        read only = no
        force create mode = 0660
        force directory mode = 2770
        force user = demoUser
        force group = demoGroup

The force create mode and force directory mode parameters force Samba to create new files and folders with the set permissions.

The force user and force group parameters map all connections to the specified user and group. Note that this can cause security problems if all users connecting to a share are mapped to a specific user account or group in the background.


User and Group-based Share Access

See Configuring User and Group-based Share Access.


Host-based Share Access

See Configuring Host-based Share Access.