Sambaは、SMB / CIFSネットワークファイル共有プロトコルの無料のオープンソース再実装であり、エンドユーザーがファイル、プリンター、およびその他の共有リソースにアクセスできるようにします。
このチュートリアルでは、SambaをUbuntu 18.04にインストールし、スタンドアロンサーバーとして構成して、ネットワーク上のさまざまなオペレーティングシステム間でファイル共有を提供する方法について説明します。
次のSamba共有とユーザーを作成します。
ユーザー:
- sadmin -すべての共有への読み取りおよび書き込みアクセス権を持つ管理ユーザー。
- ジョシュ -独自のプライベートファイル共有を持つ通常のユーザー。
共有:
- ユーザー -この共有には、すべてのユーザーが読み取り/書き込み権限でアクセスできます。
- ジョシュ -この共有には、ユーザーjoshとsadminのみが読み取り/書き込み権限でアクセスできます。
ファイル共有には、ネットワーク上のすべてのデバイスからアクセスできます。このチュートリアルの後半では、Linux、Windows、およびmacOSクライアントからSambaサーバーに接続する方法の詳細な手順も提供します。
前提条件#
続行する前に、sudo権限を持つユーザーとしてUbuntu18.04システムにログインしていることを確認してください。
UbuntuへのSambaのインストール#
Sambaは公式のUbuntuリポジトリから入手できます。 Ubuntuシステムにインストールするには、以下の手順に従ってください:
-
aptパッケージインデックスを更新することから始めます:
sudo apt update
-
次のコマンドを使用してSambaパッケージをインストールします。
sudo apt install samba
-
インストールが完了すると、Sambaサービスが自動的に開始されます。 Sambaサーバーが実行されているかどうかを確認するには、次のように入力します。
sudo systemctl status smbd
出力は次のようになり、Sambaサービスがアクティブで実行されていることを示します。
● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service ...
この時点で、Sambaがインストールされ、構成する準備ができています。
Ubuntuシステムでファイアウォールを実行している場合は、ポート137
で着信UDP接続を許可する必要があります および138
およびポート139
でのTCP接続 および445
。
UFW
を使用していると仮定します ファイアウォールを管理するには、「Samba」プロファイルを有効にしてポートを開くことができます。
sudo ufw allow 'Samba'
グローバルSambaオプションの構成#
Samba構成ファイルに変更を加える前に、将来の参照用にバックアップを作成してください。
sudo cp /etc/samba/smb.conf{,.backup}
Sambaパッケージに同梱されているデフォルトの構成ファイルは、スタンドアロンのSambaサーバー用に構成されています。ファイルを開き、server role
を確認します standalone server
に設定されています
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf ...
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
server role = standalone server
...
デフォルトでは、Sambaはすべてのインターフェースでリッスンします。内部ネットワークからのみSambaサーバーへのアクセスを制限する場合は、次の2行のコメントを解除し、バインドするインターフェースを指定します。
/etc/samba/smb.conf...
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes
...
完了したら、testparm
を実行します Samba構成ファイルにエラーがないかチェックするユーティリティ。構文エラーがない場合は、Loaded services file OK.
が表示されます。
最後に、次のコマンドでSambaサービスを再起動します。
sudo systemctl restart smbd
sudo systemctl restart nmbd
Sambaユーザーとディレクトリ構造の作成#
標準のホームディレクトリ(/home/user
)を使用する代わりに、保守性と柔軟性を高めるため )すべてのSambaディレクトリとデータは/samba
に配置されます ディレクトリ。
/samba
を作成するには ディレクトリタイプ:
sudo mkdir /samba
グループの所有権をsambashare
に設定します 。このグループはSambaのインストール中に作成され、後ですべてのSambaユーザーをこのグループに追加します。
sudo chgrp sambashare /samba
SambaはLinuxユーザーとグループ許可システムを使用しますが、標準のLinux認証とは別の独自の認証メカニズムを備えています。標準のLinuxuseradd
を使用してユーザーを作成します ツールを使用してから、smbpasswd
を使用してユーザーパスワードを設定します ユーティリティ。
はじめに説明したように、プライベートファイル共有にアクセスできる通常のユーザーと、Sambaサーバー上のすべての共有への読み取りおよび書き込みアクセス権を持つ1つの管理者アカウントを作成します。
Sambaユーザーの作成#
josh
という名前の新しいユーザーを作成するには 次のコマンドを使用します:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
useradd
オプションの意味は次のとおりです。
-
-M
-ユーザーのホームディレクトリを作成しないでください。このディレクトリは手動で作成します。 -
-d /samba/josh
-ユーザーのホームディレクトリを/samba/josh
に設定します 。 -
-s /usr/sbin/nologin
-このユーザーのシェルアクセスを無効にします。 -
-G sambashare
-ユーザーをsambashare
に追加します グループ。
ユーザーのホームディレクトリを作成し、ディレクトリの所有権をユーザーjosh
に設定します およびグループsambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
次のコマンドは、setgidビットを/samba/josh
に追加します。 このディレクトリに新しく作成されたファイルは、親ディレクトリのグループを継承します。このように、どのユーザーが新しいファイルを作成しても、ファイルにはsambashare
のグループ所有者が含まれます。 。たとえば、ディレクトリの権限を2770
に設定していない場合 およびsadmin
ユーザーが新しいファイルを作成するユーザーjosh
このファイルの読み取り/書き込みはできなくなります。
sudo chmod 2770 /samba/josh
josh
を追加します ユーザーパスワードを設定して、Sambaデータベースへのユーザーアカウント:
sudo smbpasswd -a josh
ユーザーパスワードを入力して確認するように求められます。
New SMB password:
Retype new SMB password:
Added user josh.
Sambaアカウントの実行を有効にするためにパスワードが設定されたら、次のようにします。
sudo smbpasswd -e josh
Enabled user josh.
別のユーザーを作成するには、ユーザーを作成するときと同じプロセスを繰り返しますjosh
。
次に、ユーザーとグループのsadmin
を作成しましょう 。このグループのすべてのメンバーには、管理者権限があります。後で別のユーザーに管理者権限を付与する場合は、そのユーザーをsadmin
に追加するだけです。 グループ。
次のように入力して、管理ユーザーを作成します。
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
上記のコマンドは、グループsadmin
も作成します ユーザーを両方のsadmin
に追加します およびsambashare
グループ。
パスワードを設定し、ユーザーを有効にします:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
次に、Users
を作成します 共有ディレクトリ:
sudo mkdir /samba/users
ディレクトリの所有権をユーザーsadmin
に設定します およびグループsambashare
:
sudo chown sadmin:sambashare /samba/users
このディレクトリには、認証されたすべてのユーザーがアクセスできます。次のchmod
コマンドは、sambashare
のメンバーに書き込み/読み取りアクセスを提供します /samba/users
のグループ ディレクトリ:
sudo chmod 2770 /samba/users
Samba共有の構成#
Samba構成ファイルを開き、セクションを追加します。
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf [users]
path = /samba/users
browseable = yes
read only = no
force create mode = 0660
force directory mode = 2770
valid users = @sambashare @sadmin
[josh]
path = /samba/josh
browseable = no
read only = no
force create mode = 0660
force directory mode = 2770
valid users = josh @sadmin
オプションの意味は次のとおりです。
-
[users]
および[josh]
-ログイン時に使用する共有の名前。 path
-共有へのパス。browseable
-共有を利用可能な共有リストに表示するかどうか。no
に設定する 他のユーザーは共有を表示できなくなります。read only
-valid users
で指定されたユーザーかどうか リストはこの共有に書き込むことができます。force create mode
-この共有に新しく作成されたファイルの権限を設定します。force directory mode
-この共有に新しく作成されたディレクトリの権限を設定します。valid users
-共有へのアクセスを許可されているユーザーとグループのリスト。グループのプレフィックスは@
です。 シンボル。
使用可能なオプションの詳細については、Samba構成ファイルのドキュメントページを参照してください。
完了したら、次のコマンドでSambaサービスを再起動します。
sudo systemctl restart smbd
sudo systemctl restart nmbd
次のセクションでは、Linux、macOS、およびWindowsクライアントからSamba共有に接続する方法を示します。
LinuxからSamba共有に接続する#
Linuxユーザーは、ファイルマネージャーを使用して、コマンドラインからSamba共有にアクセスするか、Samba共有をマウントできます。
smbclientクライアントの使用#
smbclient
コマンドラインからSambaにアクセスできるようにするツールです。 smbclient
パッケージはほとんどのLinuxディストリビューションにプリインストールされていないため、ディストリビューションパッケージマネージャーを使用してインストールする必要があります。
smbclient
をインストールするには UbuntuとDebianの実行:
sudo apt install smbclient
smbclient
をインストールするには CentOSおよびFedoraの実行時:
sudo yum install samba-client
Samba共有にアクセスするための構文は次のとおりです。
mbclient //samba_hostname_or_server_ip/share_name -U username
たとえば、josh
という名前の共有に接続するには IPアドレス192.168.121.118
のSambaサーバー上 ユーザーとしてjosh
実行します:
smbclient //192.168.121.118/josh -U josh
ユーザーパスワードの入力を求められます。
Enter WORKGROUP\josh's password:
パスワードを入力すると、Sambaコマンドラインインターフェイスにログインします。
Try "help" to get a list of possible commands.
smb: \>
Samba共有のマウント#
LinuxでSamba共有をマウントするには、最初にcifs-utils
をインストールする必要があります。 パッケージ。
UbuntuとDebianの実行時:
sudo apt install cifs-utils
CentOSおよびFedoraの実行時:
sudo yum install cifs-utils
次に、マウントポイントを作成します:
sudo mkdir /mnt/smbmount
次のコマンドを使用して共有をマウントします:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
たとえば、josh
という名前の共有をマウントします IPアドレス192.168.121.118
のSambaサーバー上 ユーザーとしてjosh
/mnt/smbmount
に 実行するマウントポイント:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
ユーザーパスワードの入力を求められます。
Password for josh@//192.168.121.118/josh: ********
GUIの使用#
ファイル、Gnomeのデフォルトのファイルマネージャーには、Samba共有にアクセスするための組み込みオプションがあります。
- ファイルを開き、サイドバーの[その他の場所]をクリックします。
- 「サーバーに接続」に、Samba共有のアドレスを次の形式で入力します
smb://samba_hostname_or_server_ip/sharename
。 - 「接続」をクリックすると、次の画面が表示されます。
- 「登録ユーザー」を選択し、Sambaのユーザー名とパスワードを入力して、「接続」をクリックします。
- Sambaサーバー上のファイルが表示されます。
macOSからSamba共有に接続する#
macOSでは、コマンドラインから、またはデフォルトのmacOSファイルマネージャーFinderを使用してSamba共有にアクセスできます。次の手順は、Finderを使用して共有にアクセスする方法を示しています。
- 「Finder」を開き、「実行」を選択して「接続」をクリックします。
- [接続先]に、Samba共有のアドレスを次の形式で入力します
smb://samba_hostname_or_server_ip/sharename
。 - 「接続」をクリックすると、次の画面が表示されます。
- 「登録ユーザー」を選択し、Sambaのユーザー名とパスワードを入力して、「接続」をクリックします。
- Sambaサーバー上のファイルが表示されます。
WindowsからSamba共有に接続する#
Windowsユーザーには、コマンドラインとGUIの両方からSamba共有に接続するオプションもあります。以下の手順は、Windowsファイルエクスプローラーを使用して共有にアクセスする方法を示しています。
- ファイルエクスプローラーを開き、左側のウィンドウで[このPC]を右クリックします。
- [カスタムネットワークの場所を選択]を選択し、[次へ]をクリックします。
- 「インターネットまたはネットワークアドレス」に、Samba共有のアドレスを次の形式で入力します
\\samba_hostname_or_server_ip\sharename
。 - [次へ]をクリックすると、以下に示すようにログイン資格情報を入力するように求められます。
- 次のウィンドウで、ネットワークの場所のカスタム名を入力できます。デフォルトのものはSambaサーバーによって取得されます。
- [次へ]をクリックして、接続設定ウィザードの最後の画面に移動します。
- 「完了」をクリックすると、Sambaサーバー上のファイルが表示されます。