Zorin OS Liteをファイルサーバーにしよう!

パソコンワールド

 Zorin OS Liteで日本語を使えるようにして、Google Chromeでネットサーフィンできるようにするところまでは、「Zorin OS Liteをカスタマイズしよう!」でご紹介しました。日本語でGoogle Chromeが使えるようになっていれば、Googleのウェブアプリケーションが色々使えますし、Googleドライブにしかデータを保管していない場合は、これで十分かもしれません。最近は私もGoogleドライブも使うようになっていますが、やはり大部分のファイルはローカルディスクに保存しています。これらファイルを複数台のPCで共有したいので、Zorin OS Liteを入れたPCにファイルサーバー機能を組み込みました。今日はこの作業をご紹介しましょう。

ファイラーを管理者権限で開けるようにする

 まずはファイル管理のためのファイラーです。Zorin OS LiteにプレインストールされているファイラーはThunar(ソナー)ですが、このソフトは管理者権限でディレクトリを開く機能がありません。ローカルディスクにあるドキュメントや写真、音楽ファイルを、homeディレクトリーから共有ディレクトリーにコピーしようとすると、権限がないから実行できませんというようなエラーが出てきて困ることがあります。端末からsudoでThunarを起動すれば良いらしいですが、ちょっと面倒です。

 そこで、Geiminiに聞いて、Nautilus(ノーチラス)というファイラーをインストールすることにしました。Zorin OS LiteはXfceでThunarが標準ですが、一般的にはUbuntuはNautilusなんだそうです。ソフトウェアにも登録されていそうですが、Geminiが以下の端末でコマンドラインから実行する方法も提示してくれましたので、これを使いました。

 sudo apt update
 sudo apt install nautilus-admin

 あっという間にインストールできました。この手のソフトのインストールは、ソフトウェアを立ち上げるより、端末からコマンドラインで入力する方が簡単かもしれません。このnautilus(ノーチラス)というファイラーでは、ディレクトリを選択して右クリックすると、「Open as Administrator」というメニューが出てきます。これを選択することで、ディレクトリの作成やファイルのコピーがやりやすくなりました。

 一昔前は、Linuxでわからないところがあると、英語のマニュアルを読まなければいけなかったり、マニュアルを読んでもわからない時に、それに関する情報がウェブにないか検索したり、解決するまでに結構な時間がかかっていました。今はGeminiに聞けば、それなりの回答がすぐに返ってきます。そのまま使えることもありますし、ピッタシでなくても、それをヒントにウェブ検索したりすることで、圧倒的に短時間で解決できるようになりました。生成AIとのセットで、Linuxに乗り換える障壁がかなり低くなったように感じています。

Sambaを使ったファイルサーバー機能の追加

 個人でも複数台のPCを利用している場合は、ファイルを一旦USBにコピーして、もう1台にコピーするというような方法ではなく、ネット経由で直接コピーしたいですよね。Zorin OS Liteを入れたPCをサーバーにして、LinuxとWindows、あるいはLinux間でのファイル共有ができるようにした方法を説明していきます。

1.Sambaのインストール

 ファイル共有には、Sambaというソフトを使います。Zorin OS LiteにはSambaはプレインストールされていませんでしたので、以下のように端末でコマンドラインから実行しました。

 sudo apt install samba

 そうすると、/etc/sambaというディレクトリーに、smb.confというファイルが作成されます。これに共有したいディレクトリの情報を追加します。その前に、まずは共有するディレクトリを作成します。

2.共有するディレクトリーの作成

 どのディレクトリでも共有することはできるのですが、Linuxのファイル管理のお作法としては、共有ディレクトリは/srvの下に作成するんだそうです。srvはserverの略なんですね。sambaを使って共有するディレクトリというこで、/srv/samba/shareを共有ディレクトリとすることにしました。ファイラーを使ってもディレクトリを作成することはできるのですが、以下のコマンドで作成しました。共有ディレクトリということで、所有者は特定しない設定としました。

 sudo mkdir -p /srv/samba/share
 sudo chown nobody:nogroup /srv/samba/share

 ここで、-pオプションは、指定されたパスの途中のディレクトリが存在しない場合でも、それらを自動的に作成させるものです。今回はsrvの下にsambaとshareは存在しないですが、-p オプションを設定することで、この両方が作成されます。2行目は、ディレクトリの所有者を指定するものです。

3.smb.confへ追加する情報

 作成した共有用のディレクトリに誰でもパスワード無しでアクセスして読み書きできるようにする場合には、/etc/sambaというディレクトリーにある、smb.conf以下の記載を追加します。

 [share]
 comment = Linux File server Share
 path = /srv/samba/share
 guest ok = yes
 browseable = yes
 readonly = no
 create mask = 0644
 directory mask = 0755

 ここでcreate mask=644は、Sambaを通じて新たに作成されたファイルのパーミッションを、所有者に対して読み書き権限、グループとその他に対して読み取り権限を与えることを意味します。
 directory mask = 0755は、Sambaを通じて新たに作成されたディレクトリのパーミッションを設定を、所有者に対して読み書き実行権限、グループとその他に対して読み取り実行権限を与えることを意味します。

4.smb.confの編集方法

 samb.confを編集するためにはエディターを起動する必要がありますが、それにはいくつか方法があります。1つ目は、ファイラーでsmbconfのあるディレクトリに行き、マウスの右クリックで出てきたメニューの中から「アプリケーションで開く」-「他のアプリケーションで開く」-「テキストエディター」を選択する方法です。もう一つは端末から以下のコマンドでgeditを起動する方法です。

 sudo gedit /etc/samba/smb.conf

 このgeditは、色々なLinuxに標準搭載されているテキストエディターで、もともとWindows標準のメモ帳に比べて高機能ですし、プラグインを入れて、さらに高機能にすることもできます。ですが、エディターは本当に色々なものがあります。コマンドライン時代から使われているEmacsのようなものや、プログラミングをサポートするものなどありますが、私が気になっているのはアウトライン機能を持った文章を作成するのに適したエディターです。OfficeのWordのような印刷するための機能を省いて、文章作成に特化したものを使えば、WordPressでブログの文章を作成するより楽なんじゃないかと思います。

5.Sambaの再起動

 ちょっと脱線してしまいました。samba.confに情報を追加したら、以下のコマンドでsambaのサービスを再起動します。

 sudo systemctl restart smbd.service nmbd.service

 ここで、smbd sesrviceはSamba の主要なサービスであり、実際に Windows クライアントなどからのファイル共有や印刷サービスのリクエストを処理します。
 nmbd.serviceは、Windows ネットワークでのコンピュータ名 (NetBIOS 名)と IP アドレスの対応付けを行い、ネットワーク上のコンピュータがお互いを名前で発見できるようにするものです。

6.ファイアウォールのポート開放

 ファイアウォールを設定している場合には、Sambaがファイアウォールで止められないように、Sambaが使用するポートを開放する必要があります。端末から、以下を実行します。

 sudo ufw allow samba

 これは、ufwのアプリケーションプロファイルがある場合には使えます。これで設定できない場合はアプリケーションプロファイルを作成する方法もありますが、以下のコマンドで、個別にポートを開放するのが簡単かもしれません。

 sudo ufw allow 139/tcp
 sudo ufw allow 445/tcp
 sudo ufw allow 137/udp
 sudo ufw allow 138/udp

.接続テスト

 これでファイル共有ができるようになっているはずです。Windowsからは、エクスプローラに「¥¥サーバーとしたPCのIPアドレス」を入れて接続します。サーバーとしたPCのIPアドレスは、以下のコマンドで調べます。

 hostname -I

 Linuxではファイラーを起動すると、ファイラーにもよりますが、「ネットワーク」や「他の場所」をクリックすると、ネットワーク上のPC名が表示され、さらにそれをクリックすると、共有ディレクトリが表示されます

8.アクセス権を与えるユーザーの設定

 以上でファイル共有ができるようになりましたが、もうひと頑張りします。現状では誰でも共有ディレクトリにアクセスできるので、永続的にこのディレクトリを共有サーバーとして使い続ける場合には、セキュリティー上のリスクがあります。そこで、特定のユーザーだけがパスワードを入力した上でアクセスできるようにします。

 そのためにまず、以下のコマンドで、Sambaにアクセス権を与えるユーザーを登録します。このコマンドを実行すると、このユーザーを認証するためのパスワードを聞いてきますので、それも入力します。

 sudo smbpasswd -a username

 そして、smba.confの共有ディレクトリの設定を、guest okをnoに変更し、valid usersを追加した以下のものに変更します。

 [share]
 comment = Linux File server Share
 path = /srv/samba/share
 guest ok = no
 browseable = yes
 readonly = no
 create mask = 0644
 directory mask = 0755
 valid users = username

 smb.confを変更しましたので、先程と同じように以下のコマンドでsambaを再起動します。

 sudo systemctl restart smbd.service nmbd.service

 これで特定のユーザーだけが共有ディレクトリにアクセスできるようになりました。この設定では、ユーザー名だけ特定していますので、共有ディレクトリに入る時に「認証が必要です」と出てきた時に、ユーザー名とパスワードだけ入力すればよく、ドメインの欄はデフォルトの文字列が入っているままで構いません。

 以上でZorin OS Liteを入れたPCがサーバーとして使えるようになりました。Sambaやファイアウォールの設定はGUIを使ってもできるそうですが、入力するコマンドがわかっている場合は、端末からでもそんなに難しくないように感じました。参考にしていただけたらと思います。

コメント