Sambaは、LinuxシステムとWindowsシステム間でファイル、フォルダー、およびプリンターを共有するために使用できる無料のオープンソースソフトウェアです。また、認証と承認、名前解決、サービスのアナウンスにも使用されます。 Linux、Unix、OpenVMSなどのさまざまなオペレーティングシステムで実行できます。
このチュートリアルでは、Sambaをインストールし、CentOS8でスタンドアロン共有サーバーとして構成する方法を学習します。
- CentOS8を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
Sambaサーバーをインストールする
デフォルトでは、SambaパッケージはCentOSデフォルトリポジトリで利用できます。次のコマンドでインストールできます:
dnf install samba samba-common samba-client -y
Sambaをインストールした後、次のコマンドを使用してSMBサービスを開始し、システムの再起動後に開始できるようにします。
systemctl start smb
systemctl enable smb
これで、次のコマンドを使用してSambaサービスを確認できます。
systemctl status smb
次の出力が得られるはずです:
? smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 2072 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 25028) Memory: 33.8M CGroup: /system.slice/smb.service ??2072 /usr/sbin/smbd --foreground --no-process-group ??2074 /usr/sbin/smbd --foreground --no-process-group ??2075 /usr/sbin/smbd --foreground --no-process-group ??2076 /usr/sbin/smbd --foreground --no-process-group
Sambaで公開共有を作成する
このセクションでは、Sambaとのパブリック共有を作成して、誰もがパスワードなしでパブリック共有ディレクトリにアクセスできるようにします。
まず、publicという名前の共有フォルダを作成し、パブリックディレクトリ内に2つのファイルを作成します。
mkdir -p /samba/share/public
touch /samba/share/public/file1.txt
touch /samba/share/public/file2.txt
次に、次のコマンドを使用して、必要な権限と所有権を割り当てます。
chmod -R 0755 /samba/share/
chmod -R 0755 /samba/share/public
chown -R nobody:nobody /samba/share
chown -R nobody:nobody /samba/share/public
次に、パブリックディレクトリを共有するようにSambaを構成する必要があります。
まず、次のコマンドを使用して/etc/samba/smb.confファイルのバックアップコピーを作成します。
mv /etc/samba/smb.conf /etc/samba/smb.bak
次に、新しいSamba構成ファイルを作成します。
nano /etc/samba/smb.conf
次の行を追加します:
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = samba-server security = user map to guest = bad user dns proxy = no [Public] path = /samba/share/public browsable =yes writable = yes guest ok = yes read only = no
ファイルを保存して閉じます。次に、Sambaサービスを再起動して、変更を適用します。
systemctl restart smb
次に、次のコマンドを使用してSamba構成をテストします。
testparm
次の出力が表示されます。
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No
次に、次のコマンドを使用して、共有ディレクトリに適切なSELinuxブール値とセキュリティコンテキスト値を設定します。
setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
semanage fcontext -a -t samba_share_t "/samba/share/public(/.*)?"restorecon /samba/share/public
次に、次のコマンドを使用して、firewalldを介したすべてのSambaサービス:
firewall-cmd --add-service=samba --zone=public --permanent
firewall-cmd --reload
UbuntuGnomeからSamba共有にアクセス
Samba共有にアクセスするには、リモートマシンに移動し、Gnomeファイルマネージャーを開いて、接続をクリックします。 から サーバー 以下に示すように:
SambaサーバーのIPアドレスを入力し、接続をクリックします ボタン。接続に成功すると、次の画面にSamba共有が表示されます。
次に、公開をクリックします ディレクトリの場合、次の画面にファイルが表示されます。
UbuntuコマンドラインからSamba共有にアクセス
コマンドラインからSamba共有にアクセスすることもできます。
まず、次のコマンドを使用して、使用可能なすべてのSamba共有を一覧表示します。
smbclient -L //45.58.38.51
次の出力が表示されます。
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
cifsプロトコルを使用してSamba共有をマウントすることもできます。これを行うには、次のコマンドを使用してcifs-utilsパッケージをインストールします。
apt-get install cifs-utils -y
次に、次のコマンドを使用して、Samba共有を/mntディレクトリにマウントします。
mount -t cifs //45.58.38.51/public /mnt/
以下に示すように、パスワードの入力を求められます。
Password for [email protected]//45.58.38.51/public:
Enterを押すだけです Samba共有をマウントするためのパスワードを入力せずに:
/ mnt direcotryでSamba共有にアクセスできるようになりました:
ls /mnt/
次の出力が表示されます。
file1.txt file2.txt
Sambaでプライベートシェアを作成
このセクションでは、Sambaとのプライベート共有を作成して、認証ユーザーのみがプライベート共有ディレクトリにアクセスできるようにします。
まず、次のコマンドを使用してprivateという名前のグループを作成します。
groupadd private
次に、privateuserという名前の新しいユーザーを作成し、それをプライベートグループに追加します。
useradd -g private privateuser
次に、次のコマンドを使用してユーザーのパスワードを設定します。
smbpasswd -a privateuser
出力:
New SMB password: Retype new SMB password: Added user privateuser.
次に、privateという名前の共有フォルダを作成し、プライベートディレクトリ内に2つのファイルを作成します。
mkdir -p /samba/share/private
touch /samba/share/private/private1.txt
touch /samba/share/private/private2.txt
次に、次のコマンドを使用して適切な権限と所有権を割り当てます。
chmod -R 0770 /samba/share/private
chown -R root:private /samba/share/private
次に、次のコマンドを使用してプライベートディレクトリのSELinuxコンテキストを設定します。
semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"
restorecon /samba/share/private
次に、Samba構成ファイルを開き、プライベート共有を定義します。
nano /etc/samba/smb.conf
ファイルの最後に次の行を追加します。
[Private] path = /samba/share/private valid users = @private guest ok = no writable = yes browsable = yes
ファイルを保存して閉じてから、Sambaサービスを再起動して変更を適用します。
systemctl restart smb
次に、次のコマンドを使用してSambaの構成を確認します。
testparm
次の出力が表示されます。
Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] dns proxy = No map to guest = Bad User netbios name = SAMBA-SERVER security = USER server string = Samba Server %v idmap config * : backend = tdb [Public] guest ok = Yes path = /samba/share/public read only = No [Private] path = /samba/share/private read only = No valid users = @private
UbuntuコマンドラインからSamba共有にアクセス
まず、次のコマンドを使用して利用可能な共有にアクセスします。
smbclient -L //45.58.38.51
次の出力が表示されます。
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Sharename Type Comment --------- ---- ------- Public Disk Private Disk IPC$ IPC IPC Service (Samba Server 4.10.4) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] Server Comment --------- ------- Workgroup Master --------- -------
次に、Sambaサーバーに接続し、次のコマンドで使用可能な共有を一覧表示します。
smbclient //45.58.38.51/private -U privateuser
以下に示すように、パスワードの入力を求められます。
Enter privateuser's password:
以下に示すように、パスワードを入力し、Enterキーを押してSambaシェルにアクセスします。
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4] smb: \>
次に、次のコマンドを使用して、使用可能な共有を一覧表示します。
smb: \> ls
次の出力が表示されます。
. D 0 Tue Mar 3 10:03:22 2020 .. D 0 Tue Mar 3 10:01:56 2020 private1.txt N 0 Tue Mar 3 10:03:17 2020 private2.txt N 0 Tue Mar 3 10:03:22 2020 51194 blocks of size 2097152. 49358 blocks available
次に、次のコマンドを使用してSambaシェルを終了します。
smb: \>exit
Samba共有を/optディレクトリにマウントすることもできます:
mount -t cifs -o user=privateuser //45.58.38.51/private /opt
以下に示すように、パスワードの入力を求められます。
Password for [email protected]//45.58.38.51/private: *********
パスワードを入力し、Enterキーを押してSamba共有をマウントします。
以下に示すように、/optディレクトリでSamba共有を確認できます。
ls /opt/
出力:
private1.txt private2.txt
UbuntuGnomeからSamba共有にアクセス
Samba共有にアクセスするには、リモートマシンに移動し、Gnomeファイルマネージャーを開いて、接続をクリックします。 から サーバー 以下に示すように:
SambaサーバーのIPアドレスを入力し、接続をクリックします ボタン。接続に成功すると、次の画面にSamba共有が表示されます。
次に、プライベートをクリックします ディレクトリで、ユーザー名とパスワードを入力し、[接続]ボタンをクリックします。次の画面にファイルが表示されます。
おめでとう! CentOS8にSambaサーバーを正常にインストールして構成しました。