【Ubuntu】Sambaの設定(ユーザー追加・パスワード設定など)

【Ubuntu】Sambaの設定(ユーザー追加・パスワード設定など) サーバー

Sambaを使って、共有フォルダを作成していきます。
ここで言う共有フォルダは、社内・家庭内のような閉じた環境におけるモノです。

インターネットを経由する場合は、対象外です。
インターネット経由なら、Google Driveを使いましょう。

「閉じた環境で気軽にファイル共有をしたい」
これが、Sambaを使う理由だと思います。

この記事では、このような考えのもとで共有フォルダを作成していきます。

本記事の内容

  • Windowsクライアントにおけるワークグループの確認
  • Sambaへのユーザー設定
  • Samba設定ファイルの変更
  • Samba設定変更の反映
  • ファイアウォールでポート開放
  • 共有フォルダの動作確認

それでは、上記に沿って解説していきます。

Windowsクライアントにおけるワークグループの確認

ここで扱う共有とは、同じネットワーク(グループ)にいることが前提です。
属しているネットワークは、「システムのプロパティ」で確認できます。

上の画面では、「ワークグループ」という項目になります。
環境によっては、「ドメイン」と表現されていることもあるでしょう。

ここでは、「ワークグループ」と表示されている場合についてのみ説明を進めます。
「ドメイン」の場合は、Active Directoryが出てくるので説明する内容が変わってきます。

では、「ワークグループ」に話を戻しましょう。
ここでは、「WORKGROUP」と設定されています。

初期設定のままだと、「WORKGROUP」になっているはずです。
そして、この「ワークグループ」の設定値を確認します。

なぜなら、Samba設定ファイルの変更の際に必要となるからです。

以上、Windowsクライアントにおけるワークグループの確認について説明しました。
次は、Sambaへのユーザー設定を行っていきます。

Sambaへのユーザー設定

ユーザー毎にフォルダを用意する場合、Sambaへのユーザー登録が必要となります。
そのユーザー登録には、pdbeditツールを利用します。

sudo pdbedit -a ユーザー名

上記のコマンドにより、Sambaへのユーザー登録が可能です。
ただし、そのユーザーはOS(ここではUbuntu)に存在していることが前提となります。

pdbeditでできることは、Sambaへのユーザー登録(追加)です。
新規にユーザーを作成することではありません。

なお、Ubuntuでのユーザー作成は以下のように行います。
「smb_test」というユーザーを新規に作成しています。

$ sudo adduser smb_test
ユーザー `smb_test' を追加しています...
新しいグループ `smb_test' (1002) を追加しています...
新しいユーザー `smb_test' (1002) をグループ `smb_test' に追加しています...
ホームディレクトリ `/home/smb_test' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しいパスワード:
新しいパスワードを再入力してください:
passwd: パスワードは正しく更新されました
smb_test のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
        フルネーム []:
        部屋番号 []:
        職場電話番号 []:
        自宅電話番号 []:
        その他 []:
以上で正しいですか? [Y/n] Y

では、ユーザーがいる前提で作業を進めましょう。
pdbeditを利用して、該当ユーザーを登録します。

$ sudo pdbedit -a smb_test

上記を実行すると、途中でパスワードを聞かれます(確認を含めて2回)。
その際のパスワードは、Samba専用となります。

別にユーザーのOS用パスワードと同じでもシステム的には問題ありません。
そこは、各自のセキュリティポリシーに応じて対応しましょう。

ユーザー登録が完了すると、以下のように表示されます。

Unix username:        smb_test
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-1942680053-984438793-854212618-1000
Primary Group SID:    S-1-5-21-1942680053-984438793-854212618-513
Full Name:
Home Directory:       \\ubuntu-focal\smb_test
HomeDir Drive:
Logon Script:
Profile Path:         \\ubuntu-focal\smb_test\profile
Domain:               UBUNTU-FOCAL
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:    水, 23  6月 2021 07:12:13 JST
Password can change:  水, 23  6月 2021 07:12:13 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

以上、Sambaへのユーザー設定の説明でした。
次は、Sambaの設定ファイルを変更していきます。

Samba設定ファイルの変更

aptコマンドでSambaをインストールしていれば、設定ファイルは以下となります。

Samba設定ファイル
/etc/samba/smb.conf

Sambaのインストールについては、次の記事で解説しています。

設定ファイルでは、以下の項目を変更・追加します。

  • workgroup
  • 個別の共通フォルダ設定

それぞれを以下で説明します。

workgroup

まず、Sambaの設定ファイルの構成を理解する必要があります。
設定ファイルは、[global](セクション)の下に値が記述されています。

[global]は、初期の共通設定です。
この共通設定をベースにして、個別の設定を行うことになります。

そして、[global]において以下がデフォルトで設定されています。

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = WORKGROUP

ここに、上記で確認したワークグループ名を設定します。
今回は、同じ「WORKGROUP」であるため、この部分は何も変更しません。

もちろん、異なる場合は変更する必要があります。

個別の共通フォルダ設定

[global]は、共通の設定でした。
これをベースに共有フォルダを追加していく形となります。
今回は、設定ファイルの最終行に以下を追加しています。

[test_pubic]
   path = /mnt/pubic
   writable = yes
   guest ok = yes
   guest only = yes

[test_private]
   path = /mnt/private
   writable = yes
   valid users = smb_test

上記が意味するのは、二つの共有フォルダの追加です。
ここは、自由に決めてOKです。
※test_publicではなくtest_pubic(名前は何でもよいということです)。

それぞれのフォルダについて説明します。

[test_pubic]

誰でも(ゲスト)アクセス可能な共有フォルダの追加です。

「path」は、OS上のディレクトリを指定します。
「writable」は、書き込みを認めるかどうかを設定します。

この共有フォルダのポイントは、以下です。

   guest ok = yes
   guest only = yes

「guest ok」は、ゲストのアクセスを認めるかどうかの設定になります。
「guest only」は、若干ややこしいです。
簡単に言うと、ファイル・フォルダ作成者をゲストに統一するかどうかの設定と言えます。

「guest only = yes」であれば、次のユーザー・グループでファイルなどが作成されます。

ユーザーnobody
グループnogroup

[test_private]

ユーザーを指定した共有フォルダの追加です。

valid users = smb_test

「Sambaへのユーザー設定」でSambaに登録したユーザーを設定しています。
この場合、guest関連の項目は不要です。

まとめ

基本的には、デフォルトの共通設定を利用しています。
細かく設定を行いたい場合は、設定ファイルのコメントが役に立ちます。
もしくは、マニュアルですね。

以上、Samba設定ファイルの変更について説明しました。
次は、Samba設定変更を反映させましょう。

Samba設定変更の反映

反映させる前に、設定ファイルを確認しましょう。
設定ファイルに問題がないかどうかを、testparmで確認できます。
あくまで、構文エラーがあるかどうかのチェックですけどね。

$ 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

実行すれば、上記のようにチェック結果を表示します。
「OK」で問題ないようです。

では、設定変更を反映させましょう。
リロードでもいいですが、再起動を実施します。

$ sudo systemctl restart smbd nmbd

これで反映したはずです。

以上、Samba設定変更の反映を説明しました。
次は、ポートの開放を行います。

ファイアウォールでポート開放

Sambaに関しては、ポートが何個か出てきます。
ここでは、445ポートだけを開放します。

まずは、現状の状況を確認することから始めます。

$ sudo ufw status | grep '445'

何も表示されないなら、「445」は未開放という状況になります。

そもそも、「ufw」コマンドが動かない場合は、次の記事をご覧ください。
「ファイアウォールの設定」の箇所に、「ufw」のインストールについて説明があります。

「ufw」コマンドが動くなら、次のコマンドを実行します。

$ sudo ufw allow 445
ルールを追加しました
ルールを追加しました (v6)

では、再びポートの状況確認です。

$ sudo ufw status | grep '445'
445                        ALLOW       Anywhere
445 (v6)                   ALLOW       Anywhere (v6)

ポートが、開放されています。
これで、外部からの接続が可能となります。

以上、ファイアウォールの開放について説明しました。
最後に、共有フォルダの動作確認を行います。

共有フォルダの動作確認

SambaをインストールしたサーバーのIPを確認します。
IPアドレスは、192.168.33.80です。
(もちろん、各自の環境によって異なります)

このIPアドレスにエクスプローラーでアクセスします。

設定が成功していれば、上記のように表示されます。
設定ファイルに追加した共有フォルダが見えます。

test_pubicへは、ゲストでアクセス可能です。

ファイルを保存できれば、test_pubicへの書き込みが確認できました。
公開共有フォルダとしては、何も問題ありません。

このファイルをUbuntu上で確認した結果は、以下。

$ ls -l
合計 4
-rwxr--r-- 1 nobody nogroup 327  6月 23 13:45 test.txt

では、次はtest_privateへアクセスします。

認証のポップアップが表示されます。
指定したユーザーのユーザー名とパスワードを入力します。

今回は、「smb_test」をユーザーに指定しています。
パスワードは、Samba用に登録したモノです。

認証が成功すれば、あとはtest_pubicと同じようにアクセスが可能となります。

ファイルも保存できます。
同様に、このファイルをUbuntuで確認してみましょう。

$ ls -l
合計 4
-rwxr--r-- 1 smb_test smb_test 323  6月 17 19:08 user.txt

ユーザーとグループが、「smb_test」になっていますね。
問題ありません。

以上、共有フォルダの動作確認を説明しました。

タイトルとURLをコピーしました