見出し画像

Samba 環境構築 2/2

前回の続きです。前回は Samba サーバーに接続するための下準備として、環境構築を行った結果をまとめました。
今日は、前回作成した環境下で稼働する Amazon Linux 2 に Samba をインストールして、設定を変更しながら使い勝手を確認します。

Samba インストール

まず、Samba を yum インストールしました。バージョン 4.10.16 が入りました。

[ec2-user@ip-172-29-2-230 ~]$ sudo yum install -y samba
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Resolving Dependencies
--> Running transaction check

(中略)

Installed:
samba.x86_64 0:4.10.16-18.amzn2.0.1

Complete!
[ec2-user@ip-172-29-2-230 ~]$
[ec2-user@ip-172-29-2-230 ~]$ smbd -V
Version 4.10.16
[ec2-user@ip-172-29-2-230 ~]$

設定ファイルは /etc/samba/ 配下にありました。サンプルもありました。

[ec2-user@ip-172-29-2-230 ~]$ ls -l /etc/samba/
total 20
-rw-r--r-- 1 root root    20 Feb  2 01:39 lmhosts
-rw-r--r-- 1 root root   706 Feb  2 01:39 smb.conf
-rw-r--r-- 1 root root 11327 Feb  2 01:39 smb.conf.example
[ec2-user@ip-172-29-2-230 ~]$

smb サービスはインストールしたタイミングで自動起動しなかったので、手動スタートしました。

[ec2-user@ip-172-29-2-230 ~]$ systemctl status smb.service
● smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
[ec2-user@ip-172-29-2-230 ~]$ sudo systemctl start smb.service
[ec2-user@ip-172-29-2-230 ~]$

普段使いする場合は、OS 再起動時に一緒に起動するように enable も設定しておきべきですね。

[ec2-user@ip-172-29-2-230 ~]$ sudo systemctl enable smb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[ec2-user@ip-172-29-2-230 ~]$

Windows OS から参照する

「ファイル名を指定して実行」を開き「¥¥172.16.2.230」を実行してみましたが、見つかりませんでした。

ネットワークには tsclient しかなく、エクスプローラーのアドレスバーに「¥¥172.16.2.230」を入力すると、Microsoft Edge が起動してしまいました。

エクスプローラのアドレスバーに file://172.29.2.230 と入力するとユーザー認証画面が表示されました。こんな入れ方するのですね。最近の Windows はムズカシイ。。

ちなみに、smb.service を落とすと以下のメッセージに変化して繋がらなくなったので、smb.service が機能していることも確認できました。

smb.conf の編集

あずき本の 419 ページに記載されていた暗号化を有効にしておきました。こちらは NetBIOS 用とも解釈できたので、有効にしなくれも良いのかも知れません。

    encrypt passwords = yes

Samba ユーザー

Linux ユーザーをそのまま Samba ユーザーとして利用できないのは、過去に先輩から聞いたことがあったのですが追加方法が分からず。あずき本の 430 ページに記載されていた pdbedit コマンドを試してみましたが、失敗しました。

[ec2-user@ip-172-29-2-230 ~]$ sudo pdbedit -a sambausr1
new password:
retype new password:
Failed to add entry for user sambausr1.
[ec2-user@ip-172-29-2-230 ~]

Linux ユーザーが必要でした。追加したらいけました。ただ、スピードマスター 337 ページには、Linux と Windows ではユーザー認証方法が異なるため、/etc/passwd と /etx/shadow の ユーザー認証を行うことができない。と記載がありました。
(ユーザー認証も検証したので後述しています。)


[ec2-user@ip-172-29-2-230 ~]$ sudo useradd --create-home sambausr1
[ec2-user@ip-172-29-2-230 ~]$ sudo passwd sambausr1
Changing password for user sambausr1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[ec2-user@ip-172-29-2-230 ~]$
[ec2-user@ip-172-29-2-230 ~]$
[ec2-user@ip-172-29-2-230 ~]$ sudo pdbedit -a sambausr1
new password:
retype new password:
Unix username:        sambausr1
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-3052362598-1903497969-1594596376-1000
Primary Group SID:    S-1-5-21-3052362598-1903497969-1594596376-513
Full Name:
Home Directory:       \ip-172-29-2-230\sambausr1
HomeDir Drive:
Logon Script:
Profile Path:         \ip-172-29-2-230\sambausr1\profile
Domain:               IP-172-29-2-230
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 15:06:39 UTC
Kickoff time:         Wed, 06 Feb 2036 15:06:39 UTC
Password last set:    Sun, 29 May 2022 01:52:07 UTC
Password can change:  Sun, 29 May 2022 01:52:07 UTC
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[ec2-user@ip-172-29-2-230 ~]$

エクスプローラからフォルダも作成できました。

スピードマスター 322 ページにある問題 3-1 を再現してみました。まず、samba ユーザーを作成し、

[ec2-user@ip-172-29-2-230 ~]$ sudo useradd --create-home samba
[ec2-user@ip-172-29-2-230 ~]$

/etc/samba/smb.conf に以下を追記しましたが、エクスプローラー上に public は表示されませんでした。

[public]
path = /home/samba

smb サービスをリスタートしたところ表示されました。あずき本 417 ページには [global] セクション以外の共有定義は再起動が不要と記載があるのですが、再起動が必要だったか、あるいはエクスプローラーのキャッシュなどが影響している可能性が考えられました。
可能であれば再起動した方が無難。と理解しました。

[ec2-user@ip-172-29-2-230 ~]$ sudo systemctl restart smb.service

public ディレクトリは表示されましたが、アクセスはできませんでした。

/home/samba の権限を 777 にしたら public フォルダーは開けましたが、書き込みはできませんでした。諸々の権限設定が必要と思われました。

[ec2-user@ip-172-29-2-230 ~]$ sudo chmod 777 /home/samba
[ec2-user@ip-172-29-2-230 ~]$

パスワードの同期

/etc/passwd と /etc/shadow のパスワードの同期も試しました。
/etc/smb.conf の [global] セクションに以下を追記して、リスタートしました。

    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = * %n\n * %n\n *

Linux のシステムコマンド「passwd」 からだと samba 側に反映されませんでしたが、smbpasswd でパスワード変更したらログインパスワードが変わりました。

[sambausr1@ip-172-29-2-230 ~]$ smbpasswd
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user sambausr1
[sambausr1@ip-172-29-2-230 ~]$

username map でシングルサインオンする

Windows のユーザーと Samba ユーザーをマッピングして、シングルサインオンする方法です。これは簡単にできました。

まず、Windows Server にローカルユーザーを作成しました。
コンピューターの管理からユーザーで「k-otani」として、「Remote Desktop users」グループに入れました。

次に Samba サーバーに smbusers ファイルを作り、マッピングするユーザー名を指定しました。

[ec2-user@ip-172-29-2-230 ~]$ sudo vi /etc/samba/smbusers
sambausr1 = "k-otani"

最後に smb.conf の [global] セクションに username map を記載して、smb サービスを再起動するだけでした。

[ec2-user@ip-172-29-2-230 ~]$ sudo vi /etc/samba/smb.conf
username map = /etc/samba/smbusers

ネットワークドライブのマッピング

ネットワークドライブのマッピングを試してみました。エクスプローラーからは file:// というモダンな繋ぎ方をしないとエラーになりましたが、ネットワークドライブの割り当ては従来通り、¥¥ でできました。

ユーザー名を入力してマッピングを試しましたが、エラーになりました。
配下の \\172.29.2.230\sambausr1 まで入力したところ、接続ができました。

Z ドライブとして認識しました。

ファイル非表示

veto files を使うとファイルを非表示にしてアクセスも禁止できるとのこと。やってみました。まず、テキストファイルを新規作成し

「.himitsu」を作ったところ

数秒で見えなくなりました。

ただ、もう一度作成するとファイル重複のメッセージが表示されました。文字通り非表示になっています。

メモ帳で z:¥.himitsu は開きました。

文字列を入力し「.himitsu」ファイルを開き直しましたが保存されていました。
これを veto file を利用して利用も禁止してみたいと思います。

以下の通り、[homes] セクションの最終行にファイル名を追加して、smb サービスを再起動するとメモ帳から書き込みができなくなりました。

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
writable = yes
veto files = /home/sambausr1/.himitsu.txt

この行を削除して smb サービスを再起動するとメモ帳からできなかった保存処理ができました。ただ、サービスの再起動を行わないと設定が反映されなかったので、あずき本の記載が本当に怪しくなってきました。

設定ファイルのチェック

testparm で設定ファイルのチェックができました。
ENTER キーを押下したら、設定ファイルが表示されました。-s を入れると確認なく設定ファイルの表示まで実行されました。

[ec2-user@ip-172-29-2-230 ~]$ 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


Winbindd のドメインの部分は座学のみで進めようと思います。
機会があったら構築します。

最後までお読みくださりありがとうございました。

この記事が気に入ったらサポートをしてみませんか?