いつもブログをご覧くださり、ありがとうございます。
少し前から、Linux/ Ubuntu の物理マシンを導入して、サーバー用途で使っています。その時に色々試したトピックをこのブログでもご紹介します。
今回は、Sambaを導入し、LAN内のWindowsやMacからアクセスできるファイルサーバーを構築しました。
Samba専用ユーザー smbuser を作成し、ユーザー名とパスワードで認証して共有フォルダへアクセスできるようにしています。
自分自身の備忘録も兼ねて、Sambaのインストールから共有フォルダの設定、Windows・Macからの接続までの手順をまとめます。
この記事について
本記事に掲載しているユーザー名、IPアドレス、ホスト名、ディレクトリ名などは、実際の環境とは異なる説明用の値に置き換えています。
ご自身の環境に合わせて読み替えてください。
目次
Sambaとは?
Sambaは、LinuxとWindowsなど異なるOS間でファイルやプリンターを共有するためのソフトウェアです。
今回構築する環境では、
┌─ Windows
│
Ubuntu Server ─┤
Samba │
└─ Mac
という形で、Ubuntu Server上に共有フォルダを用意し、LAN内のWindowsとMacの両方からアクセスできるようにします。
市販のNASを利用する方法もありますが、Ubuntu ServerとSambaを組み合わせることで、Linuxマシンをファイルサーバーとして利用できます。
今回構築した環境
今回の環境は以下のとおりです。
- OS:Ubuntu Server
- ファイル共有:Samba
- Ubuntu ServerのIPアドレス:
192.168.1.100 - 共有名:
share - 共有ディレクトリ:
/home/shard - Sambaユーザー:
smbuser - 認証方法:ユーザー名・パスワード
Ubuntu ServerのIPアドレスは、LAN内で変更されないように固定して使用する想定です。
最終的にはWindowsから、
\\192.168.1.100\share
Macから、
smb://192.168.1.100/share
へアクセスできるようにします。
※Sambaユーザーのパスワードはセキュリティ上、記事には掲載しません。
1. Sambaをインストールする
最初にUbuntu Serverのパッケージ情報を更新します。
sudo apt update
続いてSambaをインストールします。
sudo apt install samba
インストール後、Sambaのバージョンを確認します。
smbd --version
バージョン情報が表示されれば、Sambaのインストールは完了です。
2. 共有フォルダを作成する
今回は、
/home/shard
を共有フォルダとして使用します。
ディレクトリが存在しない場合は、以下のコマンドで作成します。
sudo mkdir -p /home/shard
作成したディレクトリを確認します。
ls -ld /home/shard
Sambaでファイルの読み書きを行う場合、Samba側の設定だけでなく、Ubuntu側のファイル・ディレクトリ権限も重要になります。
3. Sambaで使用するユーザーを作成する
今回は、Sambaへのアクセスに使用するユーザーとして、
smbuser
を使用します。
まずLinux側にユーザーが存在するか確認します。
id smbuser
存在しない場合はユーザーを作成します。
sudo adduser smbuser
Sambaのユーザー認証では、Linux側に存在するユーザーをSambaにも登録して使用します。
4. Sambaユーザーとして登録する
smbuser をSambaユーザーとして登録します。
sudo smbpasswd -a smbuser
実行すると、Samba接続時に使用するパスワードを2回入力するよう求められます。
New SMB password:
Retype new SMB password:
パスワードを設定すると、smbuser をSambaの認証ユーザーとして利用できるようになります。
5. Sambaの設定ファイルをバックアップする
Sambaの設定を変更する前に、設定ファイルをバックアップしておきます。
Sambaのメイン設定ファイルは、
/etc/samba/smb.conf
です。
以下のコマンドでバックアップします。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
設定を間違えた場合に元へ戻せるため、設定ファイルを変更する前にはバックアップしておくと安心です。
6. Sambaの共有設定を追加する
設定ファイルを編集します。
sudo nano /etc/samba/smb.conf
nano が開いたら、ファイルの最後に共有フォルダの設定を追加します。
[share]
comment = share Folder
path = /home/shard
browseable = yes
writable = yes
guest ok = no
read only = no
valid users = smbuser
今回の設定内容は以下のようになります。
[share] はネットワーク上で使用する共有名です。
path = /home/shard では、Ubuntu Server上の実際の共有ディレクトリを指定しています。
browseable = yes は共有フォルダをネットワーク上から参照できるようにする設定です。
writable = yes と read only = no によって、共有フォルダへの書き込みを許可します。
guest ok = no とすることで、ゲストユーザーによるアクセスを許可しません。
さらに、
valid users = smbuser
を設定することで、今回作成した smbuser からのアクセスを許可します。
これにより、不特定のユーザーに共有フォルダを公開するのではなく、Sambaに登録したユーザー名とパスワードを使ってアクセスする構成になります。
7. Sambaの設定を確認する
設定ファイルを保存したら、記述内容に問題がないか確認します。
testparm
設定に大きな問題がなければ、
Loaded services file OK.
などと表示されます。
Sambaの設定ファイルを変更した際には、サービスを再起動する前に testparm を実行しておくと、設定ミスを発見しやすくなります。
8. Sambaを再起動する
設定を反映するため、Sambaを再起動します。
sudo systemctl restart smbd
続いて、Sambaが正常に動作しているか確認します。
sudo systemctl status smbd
active (running) と表示されていれば正常に起動しています。
9. Ubuntu ServerのIPアドレスを確認する
今回のUbuntu Serverでは、LAN内のIPアドレスを、
192.168.1.100
に固定しています。
サーバー側で現在のIPアドレスを確認する場合は、
hostname -I
または、
ip addr
を使用できます。
ファイルサーバーは複数のPCから継続的にアクセスするため、IPアドレスが毎回変わってしまうと不便です。
そのため、固定IPアドレスを設定するか、ルーター側でDHCP予約を設定しておくと管理しやすくなります。
10. WindowsからSambaへ接続する
Windowsでは、エクスプローラーのアドレス欄に、
\\192.168.1.100\share
と入力します。
認証画面が表示されたら、
ユーザー名:smbuser
パスワード:Sambaで設定したパスワード
を入力します。
認証に成功すると、Ubuntu Serverの、
/home/shard
へWindowsからアクセスできます。
頻繁に利用する場合は、Windowsの「ネットワークドライブの割り当て」を利用してドライブとして登録しておくと便利です。
11. MacからSambaへ接続する
Macの場合はFinderを開き、
「移動」→「サーバへ接続」
を選択します。
キーボードでは、
command + K
でも開くことができます。
「サーバへ接続」が表示されたら、
smb://192.168.1.100/share
と入力して接続します。
認証画面では、
ユーザー名:smbuser
パスワード:Sambaで設定したパスワード
を入力します。
認証に成功すれば、FinderからUbuntu Serverの共有フォルダへアクセスできます。
12. ファイルの読み書きを確認する
最後にWindowsまたはMacから実際にファイルを操作して、
- ファイルを開ける
- ファイルをコピーできる
- 新しいフォルダを作成できる
- ファイルを保存できる
- ファイルを削除できる
ことを確認します。
共有フォルダは表示できるものの、ファイルを作成・保存できない場合は、Sambaの設定だけでなくUbuntu側のディレクトリ権限を確認します。
ls -ld /home/shard
Sambaでは「Sambaの認証・共有設定」と「Linux側のファイルアクセス権限」の両方が関係するため、書き込みができない場合は両方を確認することがポイントです。
まとめ
今回はUbuntu ServerにSambaをインストールして、LAN内のWindowsやMacからアクセスできるファイルサーバーを構築しました。
今回の構成ではゲストアクセスを許可せず、Sambaユーザー smbuser のユーザー名とパスワードを使ってアクセスするようにしています。
また、Ubuntu ServerのIPアドレスを固定することで、WindowsやMacから毎回同じアドレスでアクセスできるようにしました。
市販のNASを利用する方法もありますが、Ubuntu ServerとSambaを組み合わせれば、余っているPCなどを活用してファイルサーバーを構築できます。
今回のような基本的なファイル共有から始めて、今後はバックアップ、ファイアウォール、複数ユーザーごとのアクセス権限、ストレージの冗長化などについても検討していきたいと思います。

