RHEL、CentOS、FedoraにSambaサーバーをインストールする方法


Sambaはオープンソースで最も人気のあるプログラムであり、エンドユーザーが同じネットワーク上の任意のWindowsマシンからLinux共有ディレクトリにアクセスできるようにします。

Sambaはネットワークファイルシステムとも呼ばれ、Linux/Unixオペレーティングシステムにインストールできます。 Samba自体は、SMB(サーバーメッセージブロック)およびCIFS(共通インターネットファイルシステム)のクライアント/サーバープロトコルです。

Windows smbclient(GUI)またはファイルエクスプローラーを使用すると、エンドユーザーは任意のWindowsワークステーションからSambaサーバーに接続して、共有ファイルおよびプリンターにアクセスできます。

このチュートリアルでは、RHEL、CentOS Stream、およびFedoraシステムにSambaサーバー(ファイルサーバー)をインストールする方法を説明します。また、SMBプロトコルを使用してネットワーク経由でファイルを共有するように構成する方法を学習し、作成方法とsambaユーザーのデータベースにシステムユーザーを追加します。

[あなたも好きかもしれません:RHEL、Rocky Linux、AlmaLinuxでSambaサーバーをセットアップする方法]

デモンストレーションでは、ホスト名tecmint、IPアドレス192.168.43.121のRHEL8システムを使用しています。

RHELにSambaをインストールして設定する

sambaの使用を開始するには、次のようにsambaコアパッケージとsamba-clientパッケージをインストールする必要があります。

# dnf install samba samba-common samba-client 

すべてのSambaをインストールしたら、同じローカルネットワーク内のすべてのクライアントマシンと共有されるように、適切なアクセス許可と所有権でSamba共有ディレクトリを構成する必要があります。

# mkdir -p /srv/tecmint/data
# chmod -R 755 /srv/tecmint/data
# chown -R  nobody:nobody /srv/tecmint/data
# chcon -t samba_share_t /srv/tecmint/data

次に、Sambaのメイン構成ファイルである smb.confファイルでSamba共有ディレクトリを構成します。

# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
# vim /etc/samba/smb.conf

次の構成行を追加します。これらの構成行は、ネットワーク上のSamba共有にアクセスできるユーザーに関するポリシーを定義します。

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = rocky-8
security = user
map to guest = bad user
dns proxy = no
ntlm auth = true


[Public]
path =  /srv/tecmint/data
browsable =yes
writable = yes
guest ok = yes
read only = no

構成ファイルを保存して終了します。

次に、Sambaの構成にエラーがないか確認します。

# testparm

すべて問題がないように見える場合は、Sambaデーモンを起動、有効化、およびステータスを確認してください。

# systemctl start smb
# systemctl enable smb
# systemctl start nmb
# systemctl enable nmb
# systemctl status smb
# systemctl status nmb

WindowsからSamba共有にアクセスする

WindowsマシンからSamba共有にアクセスするには、Windowsロゴキー+ Rを押して[実行]ダイアログを起動し、図のようにSambaサーバーのIPアドレスを入力します。

接続すると、/ srv/tecmint/dataディレクトリからsamba共有の「パブリック」ディレクトリが表示されます。

Samba共有にファイルを作成していないため、「パブリック」ディレクトリは空です。次のコマンドを使用していくつかのファイルを作成しましょう。

# cd /srv/tecmint/data
# touch file{1..3}.txt

ファイルを作成したら、Sambaの「Public」フォルダにアクセスしてファイルを表示してみてください。

Windowsからsamba共有を正常に構成してアクセスしましたが、ファイルを編集および削除する権限を持つユーザーは誰でもディレクトリにアクセスできます。これは、重要なファイルをホストしている場合はお勧めしません。

次のセクションでは、samba共有ディレクトリを保護する方法を学習します。

RHELでの安全なSamba共有ディレクトリ

Samba共有を保護するには、新しいsambaユーザーを作成する必要があります。

# useradd smbuser
# smbpasswd -a smbuser

次に、新しいグループを作成し、このグループに新しいsambaユーザーを追加します。

# sudo groupadd smb_group
# sudo usermod -g smb_group smbuser

その後、sambaユーザーがファイルに安全にアクセスするための別の安全なsamba共有ディレクトリを作成します。

# mkdir -p /srv/tecmint/private
# chmod -R 770 /srv/tecmint/private
# chcon -t samba_share_t /srv/tecmint/private
# chown -R root:smb_group /srv/tecmint/private

もう一度、Samba構成ファイルにアクセスします。

# vi /etc/samba/smb.conf

これらの行を追加して、Samba共有を保護するように定義します。

[Private]
path = /srv/tecmint/private
valid users = @smb_group
guest ok = no
writable = no
browsable = yes

変更を保存して終了します。

最後に、図のようにすべてのsambaデーモンを再起動します。

$ sudo systemctl restart smb
$ sudo systemctl restart nmb

次に、Samba共有にアクセスしてみます。今回は、追加の「プライベート」ディレクトリが表示されます。このディレクトリにアクセスするには、図に示すように、Sambaユーザーの資格情報を使用して認証する必要があります。

Linuxマシンからsamba共有にアクセスするには、まずsamba-clientパッケージをインストールして、接続を試みます。

# dnf install samba-client 
# smbclient ‘\2.168.43.121\private’ -U smbuser

これで、RHEL、CentOS Stream、およびFedoraへのSambaのインストールと構成に関するこの記事は終わりです。この記事に関するフィードバックをいただければ幸いです。