LAMPとゆかいな仲間たち-Samba編

Linux Mint CinnamonにおけるSambaを利用した共有の方法について解説する。Sambaで検索するとLinuxとWindowsが多く出てくるが、この記事ではLinux同士のPCで行う方法について紹介する。ただし、他のディストリビューションではあまり参考にならないかもしれない。なぜなら、利用するディストリビューションはLinux Mint Cinammon同士だからだ。

Linux Mint Cinnamonのファイル管理ツールはNemoであり、フォルダ上で右クリックすると、コンテキストメニューの中に「Sharing Options」が表示される。これはNemo-Shareというアドオンがインストールされているためだが、これをクリックすると、比較的に簡単に共有することができる。ゲストユーザーであればsmb.conf設定ファイルをいじることもなく、共有フォルダへアクセスすることができる。

共有環境

  • Linux Mint 20.3 Cinnamonがインストールされた2台のラップトップ・コンピュータ
  • 2台のラップトップコンピュータはホームゲートウェイに接続
  • Samba 4.13.17

Sambaへの接続条件

Sambaへ接続するには、Sambaのインストール、ファイアウォールの適切な設定、sambashareグループへの参加、Sambaへユーザーの登録となっている。

Sambaのインストール

Sambaのインストールはターミナルから下記のコマンドを入力するか、ソフトウェア管理から行える。ちなみに最新版4.16.2へアップデートしたところ、うまく行かなかった。

sudo apt install samba

Sambaをインストールすると、クライアント側のPCにサーバー側のコンピュータ名のフォルダアイコンが表示される。もし、表示されない場合は、何らかの問題が発生している。問題点は多岐にわたるので、ひとことで言えるものではない。Sambaを再インストールしてみるのもひとつの手であろう。一番よいのは、最新版へのアップデートなどと余計なことをせずに、公式リポジトリのSambaを素直にインストールすることである。

Sambaが有効になると表示される
Sambaが有効になると表示される

この時点ではサーバー側のフォルダが共有許可をしていないので、クリックしても反応はしない。

ファイアウォールの設定

ファイアウォールに対してポート開放するルールを設定する。

sudo ufw allow 445

匿名による共有フォルダへのアクセス

どのフォルダでも共有フォルダにできるが、ここではPublicフォルダを共有に設定する。まず、共有フォルダ内に適当な文書ファイルを配置しておく。

相手から確認のために文書ファイルを配置
相手から確認のために文書ファイルを配置

次にPublicフォルダ上で右クリックして「Sharing Options」を選択すると以下のようなウィンドウが表示されるので、「このフォルダーを共有(F)」をオンにして、テストとして「ゲストアクセスを有効にし、ユーザーアカウントを持たない人からも操作できるようにする(G)」にチェックを入れて[Create Share]をクリックする。

匿名でもアクセスできるようにする
匿名でもアクセスできるようにする

Publicフォルダが共有化されたことを示すマークがつく。これで共有化できた。

共有できるようになるとマークがつく
共有できるようになるとマークがつく

実際にアクセスしてみよう。サーバー側のコンピュータ名のフォルダアイコンをダブルクリックすると、Publicとprint$の2つのフォルダがあるが、アクセスするのはPublicフォルダである。Publicフォルダアイコンをダブルクリックすると、認証のためのダイアログが表示される。ここでは、匿名のまま[接続する(N)]をクリックしよう。

匿名の認証ダイアログ
匿名の認証ダイアログ

サーバー側のPublicフォルダの中身が表示される。

匿名で共有フォルダの中身が表示される
匿名で共有フォルダの中身が表示される

匿名によるファイルやフォルダに対する操作権限は読み込み専用であり、それ以外の操作はできない。ただし、フォルダの共有で「このフォルダーに他の人がファイルを作成/削除できるようにする(A)」にチェックを入れると、フォルダおよびファイルに対して作成や削除などの操作ができるようになる。原則として、匿名によるアクセスでは作成や削除などの権限は与えない。

認証による共有フォルダへのアクセス

認証による共有フォルダへアクセするには、まず、サーバー側でユーザーを新規に作成しておかなければならない。その後、Sambaへユーザーを登録する。Linux Mint Cinnamonでは、システム設定のユーザーとグループで作成できる。

ユーザーの作成と削除
ユーザーの作成と削除

Sambaユーザーの登録
ここでは、サーバー側のPCにすでにユーザーが作成されているものとする。作成したユーザーを以下のコマンドでSambaへ登録しよう。

sudo pdbedit -a matsuken

new passwordを聞かれるが、これはSamba専用のパスワードである。ユーザーを作成したときの同じパスワードでも構わないが、セキュリティ上異なるパスワードにしておくほうが無難だろう。

共有フォルダの再設定
Publicフォルダ上で右クリックして「Sharing Options」を選択すると、さきほどのウィンドウが表示されるので、「このフォルダーに他の人がファイルを作成/削除できるようにする(A)」のみチェックを入れて[Create Share]をクリックする。

匿名ではアクセスできないようにする
匿名ではアクセスできないようにする

メッセージウィンドウが表示される。内容を意訳すると、「Publicフォルダに書き込み権限がいるけどどうする?なんなら自動で追加してあげてもよくってよ」である。ここはありがたく[Add the permissions automatically]をクリックしよう。

書き込み属性を許可する
書き込み属性を許可する

共有フォルダへアクセスする
サーバー側のコンピュータ名のフォルダアイコンをダブルクリックしてPublicフォルダをダブルクリックする。認証のためのダイアログが表示される。ここでは、接続方法を「登録ユーザー(S)」にして、Sambaに登録したユーザー名とパスワードを入力して[接続する(N)]をクリックする。

登録ユーザー認証ダイアログ
登録ユーザー認証ダイアログ

匿名の時と同じようにPublicフォルダの内容が表示されればOKである。

匿名と同じように共有フォルダの内容が表示される
匿名と同じように共有フォルダの内容が表示される

あれこれいじっていると、うまく接続できなくなることがある。そうなったら、サーバー側のPCとクライアント側のPCを再起動してみよう。設定ファイルはまったくいじっていないし、ターミナルからはSambaへユーザーを登録しただけである。それ以外はすべてGUIで行っているので問題はないはずである。

ただ、LinuxとWindowsでは結構、接続するまでが大変かもしれない。Linux同士、しかもLinux Mint Cinnamon同士では簡単に行える。ただ、今回はセキュリティまで考慮していないので、このまま運営をするのはやめておいたほうがいいかもしれない。接続できたというだけだからだ。