SambaサーバでWindowsパソコンとファイルを共有する

技術情報

1. Linux用の新PCにSamba機能を導入する

Linuxの開発環境を作るのに、HPのデスクトップパソコンを導入しました。

Pavilion Gaming Desktop TG01(インテル) 価格.com 限定モデル 製品詳細 – ゲーミングパソコン | 日本HP

NVIDIAのGPUを積んでいれば、少々負荷の重い計算にも使えると見込んでの選定です。コスパ良さそうです。

このパソコンにUbuntu20.04を入れて開発環境を構築していきます。

Sambaは、イントラネット向けのファイルサーバとして使われてきたため、ゼロトラストを目指している大きな企業では徐々に減っている印象はあります。しかし一気にゼロトラストだぁといかないのが現実です。まだまだSamba(SMBプロトコル)は活躍中です。特に一般家庭では家電(ビデオデッキやテレビなど)と接続しようとするとまだまだSambaははずせません。

それではSambaの設定、スタートです。

2. ディスクの構成を考える

HP Pavilionには512GBのSSDと2TBのHDDがついています。SSDはUbuntuをインストールしHDDはSambaの共有ディスクとしてクライアントPCと共有します。

初期状態ではHDDは、/dev/sda1として/media/(ユーザ名)/DATAにマウントされています。

 このままだとHDDにアクセスするためにいちいち/media/(ユーザ名)/DATAに移動しなくてはいけないので、ホームディレクトリの下にシンボリックリンクを張ります。

$ln -s /media/(ユーザ名)/DATA DATA

ユーザ名が「example」なら「$ln -s /media/example/DATA DATA」とします。

$ln -s /media/example/DATA DATA

これで「~/DATA」に張り付きます。

3. Sambaのインストール

UbuntuにSambaのパッケージをインストールします。

$sudo apt install samba⏎
$sudo apt install samba

Sambaのインストールはこれだけです。

4. smb.conf:設定ファイルの編集

設定ファイルは、「/etc/samba/smb.conf」です。

$sudo vi /etc/samba/smb.conf
$sudo vi /etc/samba/smb.conf

エディタは何でも良いのですが上記は「vi」を使って編集する例です。

今回編集した内容は以下のとおり。(行番号は編集後)

[global]セクションに以下を追加します。

26 unix charset = utf-8
27 dos charset = CP932
・・・・・
41 interfaces = 192.xxx.xxx.0/24 (各自のネットワークに応じて変えてください)
・・・・・
48 bind interfaces only = yes
・・・・・

ネットワークのアドレスは、ifconfigコマンドで確認します。

さらに245行目から[develop]セクションを追加します。

これはHDDに「ユーザ名」のユーザが利用する「develop」というディレクトリを作成するための記述です。

245 [develop]
246 path = /media/(ユーザ名)/DATA/develop
247 public = yes
248 guestok = yes
249 writable = yes
250 force user = (ユーザ名)
251 force create mode = 777

5. sambaユーザの作成

sambaを利用するには、Linuxユーザだけでなくsambaユーザも作る必要があります。

今回はLinuxユーザの情報を継承して作成しましたので「ユーザ名」を同じにしました。

$sudo pdbedit -a (ユーザ名)
$sudo pdbedit -a user

ここでsambaユーザのパスワードを設定します。2回入力する必要があります。

6. ファイアウォールの設定

このままだとクライアントPC側から名前は見れますが、アクセスしようとするとファイアウォールで遮断されてしまいます。そこでファイアウォールにsambaを許可するよう設定します。

$sudo ufw allow samba⏎
$sudo ufw allow samba

これで無事にクライアントPCからアクセスすることが可能となりました。

7. まとめ

 Sambaサーバは、上記の手順で簡単に構築できるので中小の事業所で利用するには便利な機能です。しかし、サーバのハードウェアの管理やパッケージのアップデートなどの運用管理を適切に行わないと障害の発生やセキュリティの問題が発生する場合もあります。

 費用を惜しんで結果的に高くついたということにならないように導入時にはしっかりと計画する必要があります。適切なパートナーを見つけて相談することをお奨めします。もちろん弊社でもお手伝いさせていただきます。