シェルスクリプトマガジン

第4回 ファイルサーバーを作る

仕様やロジックを考える

 それでは、ファイルサーバーの仕様を考えましょう。Linux OS上でファイルサーバーを構築するためのソフトウエアが「Samba」です。多くのLinux OSなら、Sambaは「パッケージ管理システム」と呼ばれるソフトウエアを用いて容易にインストールできます。ただし、パッケージ管理システムはLinuxディストリビューションで異なり、インストールを実行するコマンドが異なります。そこで、特定のLinuxディストリビューションでファイルサーバーを構築するシェルスクリプトとします。

 パッケージでインストールできるSambaでは、デフォルトの設定ファイルが用意されています。ただ、自分が利用したいファイルサーバーに仕立てるために、その設定ファイルの書き換えが必要です。ここでは、皆が読み書きできる共有フォルダと参照しかできない共有フォルダという二つを作る設定に書き換えます。 どちらもセキュリティのため、ユーザー名とパスワードによる認証でアクセス可能にします。 このユーザー名とパスワードはファイルから一括登録できると便利です。

 では、具体的な仕様を決めていきます。まず、Linuxディストリビューションですが、Ubuntuにします。バージョンも固定した方がよいので長期サポート版の「18.04 LTS」および、そのマイナーアップデート版とします。

 読み書き可能な共有フォルダとして「share」を、参照のみを許可する共有フォルダとして「readonly」を作成します。共有フォルダとして割り当てる、Linux内のディレクトリは「/var/samba」の下に同じ名前で作成します。
 共有フォルダにアクセスできるユーザーのユーザー名とパスワードはタブ区切りテキストファイル(sambauser.txt)に記述しておき、スクリプトから一括登録を可能にします。タブ区切りテキストなら、表計算ソフトの「Microsoft Excel」や「LibreOffice Calc」で編集できて便利でしょう。