【 Ubuntuを使おう 第18回 】Ubuntu 22.04 LTSにSambaサーバーを構築する!
前回の記事の続きです。
HDD8台搭載のファイルサーバーを作ったので、今回はファイルサーバー構築の手順を記事にします。
ずいぶん前に似たような記事を書きましたが、今回はUbuntuのバージョンが上がっていることと、私の手元にまとまった導入手順のメモがなかったので、一回仕切り直して、キレイにまとめなおそうと思います。
特に、Ubuntu18.04LTS以前は、Sambaの設定が簡単にできるアプリがあったんですが、20,04以降リリースされなくなり、不思議に思うところもありながら作ってたんですが、今回、そのモヤモヤが一部解消されたので、それも含めて記事にします。
一応、目標はSambaサーバーを初めて作るよって人でも、この記事一つで完結できるよう、なるべく詳しく書くつもりなので、これからやってみようって人は是非参考にしてみてください。
それでは、本題へ。
Ubuntu22.04LTSのインストール
Ubuntuのインストールは、過去のバージョンと大差ないので、おおむね割愛します。
インストールの方法は、過去に記事にしているので気になる方は、そっちを見てみてください。
余談ですが、リンクの記事と違うところは、今回初めてDVDではなくインストール用のUSBメモリを作ってインストールしてみました。
DVDよりはるかに早くインストールできて、もっと早くUSBメモリにしたら良かったって思いました。
共有するフォルダの作成
まず最初に、共有するフォルダを作成します。
私の環境では、増設したHDDを全て共有するので「NAS2」というフォルダを作成して、その中に各HDDを個別にマウントします。
ちなみに我が家には、家族共有のサーバーと、私専用のサーバーの2台あるためNAS2としていますが、共有するフォルダ名はなんでもいいのでわかりやすい名前にしてください。
$ sudo mkdir /mnt/NAS2
このNAS2の中にHDDをマウントするフォルダを必要な数作成します。
これで共有するフォルダの作成は完了です。
続いて、このフォルダを共有設定にします。
フォルダの設定変更は、root権限で行うためターミナルで下のコマンドを実行します。
$ sudo nautilus
これでroot権限でファイルフォルダーを操作できるので、先ほど作成した「NAS2」フォルダを右クリックして、「プロパティ」から「アクセス権」タブを開きグループを「sambashare」へ変更します。
変更後、「フォルダー内のすべてのファイルの権限を変更」から自分の用途に合わせて設定を変更します。
次に、「ローカルネットワーク共有」のタブを開いて「このフォルダーを共有する」と「このフォルダー内でのファイルの作成・削除を他のユーザーに許可する」にチェックを入れます。
これで共有するフォルダの設定は完了です。
Sambaインストール
ファイル共有ソフトであるSambaのインストールは、ターミナルから行います。
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install samba
Sambaのインストールが終わったら、smb.confの書き換えとsmbusersというファイルを作成します。
smb.confの書き換え
smb.confの書き換え箇所は、以前記事にした20.04LTSと同じところで、3か所加筆・修正します。
1か所目は、29行目のWORKGROUPを小文字にします。
コレたぶんやらなくても問題ないです。私は、昔からやってるのでおまじない的な感覚でやってます。
2か所目は、169行目に新たにアクセス権に関して追記します。
username map = /etc/samba/smbusers security = user encrypt passwords = yes guest ok = no guest account = nobody
3か所目は、最終行に下を追記します。
[NAS2] path = /mnt/NAS2 writeable = yes browseable = yes valid users = _apt, avahi-autoipd, avahi, backup
最終行のvalid usersのユーザー名は、後述しますがデフォルトだと使える名称が決まっています。
次に作成するsmbusersで、このUbuntuに登録されているユーザー名と、実際にサーバーに接続するクライアントを紐付けます。
ちなみに、Ubuntuに登録されているユーザー名は、後から追加することもできるのでクライアントの名称を、直接使ってSambaにアクセスするようにもできます。
私はUbuntuのデフォルトのユーザー名で事足りるので、ここではユーザー追加は省略します。
smbuserの作成
ファイルサーバーに接続するクライアントを、Ubuntuのユーザー名と紐付けます。
smbusersというファイルは、デフォルトでは存在しないのでターミナルから作成します。
$ sudo gedit /etc/samba/smbusers
これでsmbusersというファイルが表示されるので、Ubuntuのユーザー名とクライアントの名前を入力して保存します。
これでsmbusersファイルの作成は完了です。
Ubuntuのユーザーとは
ここでSambaを用いたファイルサーバー構築から、少し脱線しますが、今回のファイルサーバー作成で新しく知った知識を披露しようかと思います。
昔から、クライアントを追加する際に、avahiとかbin、gnatsという謎の暗号を選んでいたのが不思議だったんですが、それが解決しました。
Ubuntuには、デフォルトでユーザーが登録されているようで、そのユーザー名がこの謎の暗号だったようで、デフォルトで登録されているユーザーは、下のコマンドで一覧を表示できます。
$ cut -d: -f1 /etc/passwd
これでターミナル上にユーザー名が羅列して表示されます。
UbuntuにインストールしたSambaにアクセスするには、どうもこのUbuntuのユーザーである必要があるようで、そのためsmbusersというファイルを作成してUbutnuユーザーとクライアント名を紐付けているみたいです。
ただし、あまり無いと思いますが、Ubuntuのデフォルトのユーザー名の数以上にクライアントを接続する場合は、Ubuntuに新たにユーザーを登録しないといけません。
私の環境では、今のところ新たにユーザーを追加する必要がないのでやっていませんので、今回の記事では紹介できませんが、将来的にユーザーを追加することがあれば、また記事にします。
Sambaへのアクセスを設定する
最後に、Sambaへのアクセス許可の設定を行います。
root権限で行いますので、まずターミナルで下記を実行
$ sudo su -
rootに変わったら、追加するユーザー毎に下記を実行します。
$ sudo smbpasswd -a bin
末尾の単語が、追加するユーザー名です。
上の例文では、ユーザー「bin」を追加しています。
このコマンドを実行するとパスワードの入力が要求されるので、任意のパスワードを入力して設定します。
New SMB password:任意のパスワードを入力 Retype new SMB password:パスワードの再入力
ここで入力したパスワードが、クライアントが接続する際に用いるパスワードになるのでメモしておきましょう。
問題なくユーザー登録とパスワード設定が完了したら、下が表示されます。
Added user _Apt
これでSambaのアクセス設定は完了です。
設定後は、クライアントからファイルサーバーへ接続してみて、無事つながればファイルサーバーの作成は完了です。
Windows10からですがSambaサーバーへ接続する方法は、過去に記事にしているのでそちらを参考にしてみてください。
Sambaの自動起動の設定
この設定も必要なのか、いまいち不明ですが一応やったので記載します。
サーバーにしているUbuntuを起動すると、自動でSambaも起動するようにする設定です。
$ sudo systemctl enable smbd
これで全ての設定が完了です。
まとめ
およそ3年ぶりぐらいにSambaサーバーを作り直しました。
18.04LTS以前は、Sambaの設定ができるアプリがあったんですが、上述したように20.04LTS以降公開されなくなってしまったので、若干手間が増えてしまいました。
今回久々だったのもあり、結構忘れていることも多く調べなおしたりで時間がかかってしまいました。
まぁ、その分昔から不思議に思ってたsmbuserを作る理由とかが分かったので、結果的には良かったです。
これからUbuntu22.04LTSでファイルサーバーを作ろうと思ってるかたは、是非、この記事を参考にしてみてください。
じゃ、そんな感じでノシ