Sambaは、SMB / CIFSネットワークファイル共有プロトコルの無料のオープンソース再実装であり、エンドユーザーがファイル、プリンター、およびその他の共有リソースにアクセスできるようにします。
このチュートリアルでは、CentOS 7にSambaをインストールし、スタンドアロンサーバーとして構成して、ネットワーク上のさまざまなオペレーティングシステム間でファイル共有を提供する方法を示します。
次のSamba共有とユーザーを作成します。
ユーザー:
- sadmin -すべての共有への読み取りおよび書き込みアクセス権を持つ管理ユーザー。
- ジョシュ -独自のプライベートファイル共有を持つ通常のユーザー。
共有:
- ユーザー -この共有には、すべてのユーザーが読み取り/書き込み権限でアクセスできます。
- ジョシュ -この共有には、ユーザーjoshとsadminのみが読み取り/書き込み権限でアクセスできます。
ファイル共有には、ネットワーク上のすべてのデバイスからアクセスできます。チュートリアルの後半では、Linux、Windows、およびmacOSクライアントからSambaサーバーに接続する方法の詳細な手順も提供します。
前提条件#
始める前に、sudo権限を持つユーザーとしてCentOS7システムにログインしていることを確認してください。
CentOSへのSambaのインストール#
Sambaは、標準のCentOSリポジトリから入手できます。 CentOSシステムにインストールするには、次のコマンドを実行します。
sudo yum install samba samba-client インストールが完了したら、Sambaサービスを開始し、システムの起動時に自動的に開始できるようにします。
sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service
smbd serviceは、ファイル共有および印刷サービスを提供し、TCPポート139および445でリッスンします。nmbd サービスは、NetBIOS over IPネーミングサービスをクライアントに提供し、UDPポート137でリッスンします。
SambaがCentOSマシンにインストールされて実行されたので、ファイアウォールを構成し、必要なポートを開く必要があります。これを行うには、次のコマンドを実行します。
firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --zone=public --add-service=samba
Sambaユーザーとディレクトリ構造の作成#
標準のホームディレクトリ(/home/user)を使用する代わりに、保守性と柔軟性を高めるため )すべてのSambaディレクトリとデータは/sambaに配置されます ディレクトリ。
/sambaを作成することから始めます ディレクトリ:
sudo mkdir /samba
sambashareという名前の新しいグループを作成します 。後で、すべてのSambaユーザーをこのグループに追加します。
sudo groupadd sambashare
/sambaを設定します sambashareへのディレクトリグループの所有権 :
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/joshsudo 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 sadminsudo smbpasswd -e sadmin
次に、Usersを作成します 共有ディレクトリ:
sudo mkdir /samba/users
ディレクトリの所有権をユーザーsadminに設定します およびグループsambashare :
sudo chown sadmin:sambashare /samba/users
このディレクトリには、認証されたすべてのユーザーがアクセスできます。次のコマンドは、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 smb.servicesudo systemctl restart nmb.service
次のセクションでは、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サーバー上のファイルが表示されます。