Samba は、SMB ネットワークプロトコルを再実装したフリーソフトウェ アで、Andrew Tridgell 氏によって開発されました。Samba は、様々な Microsoft Windows クライアントにファイルと印刷サービスを提供し、ドメインコントローラとして、またはドメインメンバーとして、Microsoft Windows Server ドメインと統合することができます。
バージョン 4 では、Active Directory と Microsoft Windows NT ドメインをサポートしています。
今回のテーマ
Samba のスタンドアロンサーバーの設定をして、ファイル共有ができることを確認します。
- プリンタサーバー機能は利用しない
- パスワード形式は tdbsam としサーバーに情報を保存
- 各ユーザー毎の共有 [homes] を設定する。
- シンボリック・リンクを辿れるようにする。
--- OUTLINE ---
Samba をインストールおよび設定をする OS は下記のとおりです。
OS |
|
Red Hat Enterprise Linux 9 (Plow) |
x86_64 |
RHEL 側の設定
Samba のインストール
次に dnf コマンドで samba と関連パッケージをインストールします。
[bitwalk@rhel9 ~]$ sudo dnf install samba
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:08:35 時間前の 2022年07月24日 08時03分59秒 に実施しました。
依存関係が解決しました。
===========================================================================================================
パッケージ Arch バージョン リポジトリー サイズ
===========================================================================================================
インストール:
samba x86_64 4.15.5-108.el9_0 rhel-9-for-x86_64-baseos-rpms 837 k
依存関係のインストール:
python3-dns noarch 2.1.0-6.el9 rhel-9-for-x86_64-baseos-rpms 393 k
python3-ldb x86_64 2.4.1-1.el9 rhel-9-for-x86_64-baseos-rpms 60 k
python3-samba x86_64 4.15.5-108.el9_0 rhel-9-for-x86_64-baseos-rpms 3.3 M
python3-talloc x86_64 2.3.3-1.el9 rhel-9-for-x86_64-baseos-rpms 24 k
python3-tdb x86_64 1.4.4-1.el9 rhel-9-for-x86_64-baseos-rpms 24 k
python3-tevent x86_64 0.11.0-1.el9 rhel-9-for-x86_64-baseos-rpms 22 k
samba-common-tools x86_64 4.15.5-108.el9_0 rhel-9-for-x86_64-baseos-rpms 458 k
samba-libs x86_64 4.15.5-108.el9_0 rhel-9-for-x86_64-baseos-rpms 107 k
tdb-tools x86_64 1.4.4-1.el9 rhel-9-for-x86_64-baseos-rpms 40 k
トランザクションの概要
===========================================================================================================
インストール 10 パッケージ
ダウンロードサイズの合計: 5.2 M
インストール後のサイズ: 24 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/10): python3-dns-2.1.0-6.el9.noarch.rpm 957 kB/s | 393 kB 00:00
:
:
:
インストール済み:
python3-dns-2.1.0-6.el9.noarch python3-ldb-2.4.1-1.el9.x86_64
python3-samba-4.15.5-108.el9_0.x86_64 python3-talloc-2.3.3-1.el9.x86_64
python3-tdb-1.4.4-1.el9.x86_64 python3-tevent-0.11.0-1.el9.x86_64
samba-4.15.5-108.el9_0.x86_64 samba-common-tools-4.15.5-108.el9_0.x86_64
samba-libs-4.15.5-108.el9_0.x86_64 tdb-tools-1.4.4-1.el9.x86_64
完了しました!
[bitwalk@rhel9 ~]$
Samba サービスの起動
Samba のサービスを利用するには、smb に加えて(ホスト名取得のため)nmb(NetBIOS 対応)のサービスも起動する必要があります。
[bitwalk@rhel9 ~]$ sudo systemctl start smb nmb
[bitwalk@rhel9 ~]$ sudo systemctl enable smb nmb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.
[bitwalk@rhel9 ~]$
smb.conf の設定
ルート権限で /etc/samba/smb.conf を編集します。今回は、Linux (RHEL) のユーザーアカウントのディレクトリを共有するだけです。あと、シンボリック・リンクを辿れるようにしています。
/etc/samba/smb.conf の設定例
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
#
# Note:
# SMB1 is disabled by default. This means clients without support for SMB2 or
# SMB3 are no longer able to connect to smbd (by default).
[global]
security = user
passdb backend = tdbsam
#printing = cups
#printcap name = cups
#load printers = yes
#cups options = raw
dos charset = CP932
unix extensions = no
wide links = yes
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
#[printers]
# comment = All Printers
# path = /var/tmp
# printable = Yes
# create mask = 0600
# browseable = No
#[print$]
# comment = Printer Drivers
# path = /var/lib/samba/drivers
# write list = @printadmin root
# force group = @printadmin
# create mask = 0664
# directory mask = 0775
testparm コマンドで、編集した内容にスペルミスなどがないか確認します。
[bitwalk@rhel9 ~]$ testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
dos charset = CP932
security = USER
unix extensions = No
idmap config * : backend = tdb
wide links = Yes
[homes]
browseable = No
comment = Home Directories
inherit acls = Yes
read only = No
valid users = %S %D%w%S
[bitwalk@rhel9 ~]$
Samba ユーザーの追加とパスワードの設定
Samba ユーザーを登録するには、Linux 上の既存ユーザーの情報を使うか、あるいは新しいユーザーを作成してそのユーザー情報を使います。Samba の pdbedit コマンドに -a -u オプションを指定して以下のように実行します。ここでは、ユーザー bitwalk を Samba ユーザーに追加しています。パスワードは、Linux の bitwalk ユーザーと同じものを設定しています。
[bitwalk@rhel9 ~]$ sudo pdbedit -a -u bitwalk
[sudo] bitwalk のパスワード:
new password:
retype new password:
Unix username: bitwalk
NT username:
Account Flags: [U ]
User SID: S-1-5-21-4010619847-536072473-1214530244-1000
Primary Group SID: S-1-5-21-4010619847-536072473-1214530244-513
Full Name: Fuhito Suguri
Home Directory: \\RHEL9\bitwalk
HomeDir Drive:
Logon Script:
Profile Path: \\RHEL9\bitwalk\profile
Domain: RHEL9
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 木, 07 2月 2036 00:06:39 JST
Kickoff time: 木, 07 2月 2036 00:06:39 JST
Password last set: 日, 24 7月 2022 08:33:45 JST
Password can change: 日, 24 7月 2022 08:33:45 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[bitwalk@rhel9 ~]$
ファイアウォールの設定
Samba のサービスがファイアウォールを通るように設定します。
[bitwalk@rhel9 ~]$ sudo firewall-cmd --add-service=samba --permanent
success
[bitwalk@rhel9 ~]$ sudo firewall-cmd --reload
success
[bitwalk@rhel9 ~]$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s21f0u5 wlp2s0
sources:
services: cockpit dhcpv6-client http pmproxy samba ssh
ports: 9090/tcp 3389/tcp 443/tcp
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[bitwalk@rhel9 ~]$
SELinux の設定
SELinux の setsebool コマンドで下記を実行します。
[bitwalk@rhel9 ~]$ sudo setsebool -P samba_export_all_rw 1
[bitwalk@rhel9 ~]$ sudo setsebool -P samba_enable_home_dirs 1
サービスの再起動
編集した設定を反映させるために、サービスを再起動します。
[bitwalk@rhel9 ~]$ sudo systemctl restart smb nmb
Windows から接続
Samba サーバへの接続確認に、下記の Windows PC を使いました。
OS |
|
Windows 11 Home |
21H2, build 22000.778 |
x64 ベース |
まず、エクスプローラを開いて、Samba サーバーのアドレスを入力します。この例では ¥¥192.168.150.63 と入力しています。
ネットワーク資格情報の入力が求められますので、設定した Samba のユーザー名とパスワードを入力して OK ボタンをクリックします。
すると Samba サーバー側の bitwalk フォルダが表示されます
フォルダを開けることを確認後、念の為、ファイルの書き込みができることも確認しておきます。
ネットワークドライブをドライブ番号に割り当てる場合は、例えば、参考サイト [1] などを参考にしてください。
参考サイト
- Windows 11 で「ネットワークドライブの割り当て」をする
にほんブログ村