2020年5月4日月曜日

macOSとLinux Mint 19.3でSambaの設定(ファイアウォールを含む)をしてmacOSや別のLinux機から共有フォルダを使えるようにするまでの試行錯誤

macOSがCatalinaになって、ファイル共有の動きがイマイチな感じになっていました。AFP(Apple Filing Protocol)で共有フォルダを開くと、macOSジャーナリングでフォーマットした外付けHDDの中身が見えなくなってしまったのです。これにはかなりパニック状態になりました。なぜなのかわからず、長いこと試行錯誤しました。

ドライブのフォーマットの問題かと思い、exFATでフォーマットしてやってみました。これで、中身は見えるようになりましたが、ファイルを開くことはできても保存がうまく行かないなどのアクシデントがありました。仕方がないのでSMB(Server Message Block)で開き直してみると、exFATでは、アプリケーションが開いたファイルの位置を見失う状態になりました。ならばということで、macOSジャーナリングでフォーマットしたドライブをSMBで開いてみました。すると、中身も見えるし問題なく使えるようになりました。いつの間にか、macOSのファイル共有は、SMBが基本になっていたのですね。
#どうやら、FAT系フォーマットのドライブの扱いが、何か変わったのかなという感じです。

ならばと思い、先日設定をしたHTPCIntelCeleron J1800を載せたGIGABYTEGA-J1800N-D2H)のSamba(SMB)設定を強化すべく、設定をいじることにしました。Sambaは既にインストールしてあるので、HTPCのホームディレクトリが共有できるようになっています。「/etc/samba/smb.conf」には、以下のように書き込んであります。

[homes]
comment = Home Directories
browseable = no
read only = no
valid users = %S

ここまでの設定で使えることは使えるのですが、最低限のセキュリティとして、ファイアウォールは必須と考えてLinux Mint 19.3のファイアウォールの設定をONにしました。すると、HTPCにアクセスすることができなくなりました。macOSとは違って、ファイル共有とファイアウォールの設定は、自動的に関連付けられてはいないのです。そのため、ファイアウォールの設定をいじらなければななりません。先程、ファイアウォールをONにした設定ツールからルールを追加します。

Linux Mintの「ファイアウォール設定ツール」を開いて「ルール」タグの窓の下方にある「+」ボタンを押して、以下の設定を追加します。

ポリシー:Allow
方向:In
カテゴリー:すべて
サブカテゴリー:Service
Application:Samba

ここまで設定したら「追加」ボタンを押します。すると、自動的にルールが書き込まれるので、これで設定が完了(「閉じる」ボタンを押して良い)します。ここまでやった後、iMacMacBook Proからアクセスしてみましたが、問題なくHTPCにアクセスすることができるようになり、ホームディレクトリが使えるようになりました。

ついでに、別のLinux機(うちの場合は、多くはMintで動いているけれども、様々なLinux機でも同様です)からアクセスできるようにしてみました。次のようにクライアントの設定をします。

$ sudo apt install cifs-utils

cifs-utils」は、Windowsのネットワークに入るためのもので、必ずしもSamba専用というわけではありません。Windowsでファイルサーバを運用しているところで、Linuxからアクセスする場合にも、「cifs-utils」を使います。使い方は難しくありませんが、ちょっとしたコツが必要です。(Linuxユーザなら特に問題はないでしょう)

はじめに共有するフォルダをマウントする場所(マウントポイント)を用意します。

$ sudo mkdir -p /mnt/〈任意の名前〉

このコマンドで、/mntフォルダの中に、任意の名前のフォルダをつくるというイメージです。マウント後は、このフォルダの中に共有先のファイルやフォルダが見えるようになります。続いてマウントコマンドで共有先をマウントします。

$ sudo mount -t cifs -o username=〈username〉,password=〈password〉 //〈serverのPC名〉/〈共有フォルダ名〉 /mnt/〈任意の名前〉

〈username〉と〈password〉は、Sambaを動かしているサーバ側で設定したものを入力します。〈serverのPC名〉と〈共有フォルダ名〉も、サーバ側で設定したものです。これで、/mnt/〈任意の名前〉に共有先のフォルダがつながってファイルやフォルダの共有ができるようになります。
#「Narrow Escape」のLinuxMint 19: SMBクライアントのcifs-utilsをインストールするを参考にしました。

これらの一連の操作をシェルスクリプトとして保存しておいて、起動と同時に自動で走らせるという方法もありますが、セキュリティ上どうなのかという心配があります。(やる場合は、自己責任で)

0 件のコメント: