Linux Debian10でSambaによる小規模ファイルサーバーを構築する

Linux Debian10でSambaによる小規模ファイルサーバーを構築する

2020-05-15


多数のOSからファイル共有できるようにするには?

複数台の異なるPCでファイル共有をしようと考えたとき、ファイルサーバーもしくはNASが必要となります。

ネットワークアタッチストレージ(NAS)

LAN上にNASを構築しようとした場合、NAS専用機を購入するのではなく、自前でNASを構築するという選択をしました。

まずNAS専用OSとしてOpenMediaVaultなどを検討しましたが、要求されるハードスペックが高いなど手軽に実現できないことが分かりました。

またファイル共有プロトコルの問題もありました。各OSごとにいろいろなファイル共有プロトコルが用意されており、WindowsではSMB、Mac OSではAFP、LinuxではNFSなどがあることが分かりました。

今回、いろいろなOS間、すなわちクロスプラットフォームでファイル共有を実現するため、Linuxをサーバー、Windows・Mac OS・Linuxをクライアントとし、Sambaを使ってファイル共有機能を実現する方法について調べてみました。

Linuxだけでファイル共有を考えた場合

Linuxではファイル共有プロトコルとしてFTP、NFS、SSH(rcp)を使います。またWindowsではCIFSかSMB、Mac OSではAFPかSMBというファイル共有プロトコルを使用します。

ではWindows、Mac OS、Linuxの全てのOSからファイル共有を実現したい場合は、サーバーをどこに置いてどのように構成したら良いでしょうか?

Windows ServerやWindows Storage Serverを使う方法、LinuxでSambaを構成する方法があることが分かりました。個人用途で手軽に実現しようとした場合、Linux上のSambaが選択肢に挙げられます。

LinuxにおけるSambaは、WindowsのSMBというWindowsネットワークの機能をLinux上に実装した(機能をコピーして実現した)もので、ファイル共有、プリンタ共有、ドメインコントロール、ドメイン参加などが実現できます。

今回は、Linuxマシンをファイルサーバーにするため、Linux上にSambaサーバーを構成、Linux、Mac、Window機をSambaクライアントにし、小規模なネットワークでのファイル共有を実現しました。

Linux上にSambaサーバーを構成する。

1. インストール

Samba Serverをインストールします。

Install Samba Server

2. Sambaデーモン

Samba Serverを常駐プロセス(デーモン化)します。

ubuntuでSambaの再起動

3. Sambaにおけるユーザー管理

Sambaにおけるユーザー管理において、ログインユーザーはLinuxユーザーとSambaユーザーで同じとなる。しかしパスワードはLinuxのログインパスワードとSambaのログインパスワードで異なる点を理解する必要があります。

Samba fails to add a user entry, how do I fix this?

Sambaユーザーを作成します

実は簡単!Linuxユーザの作成方法と追加方法

Sambaパスワードを設定します

pdbeditで作成します。

pdbedit — SAM データベース (Samba ユーザーのデータベース) を管理する

Sambaユーザーの一覧は、次のようにして確認します。

SAMBAのパスワードファイルに登録されているユーザ一覧を表示するには

Linux上にSambaクライアント構築

smbclientのインストール

Samba Serverをインストールします。

Install Samba Client

smbclientの使い方

smbclient

Windowsからの接続

Macからの接続

まとめ