Kubuntu24.04にSambaを導入する

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

今回はKubuntu24.04のPCにSambaを導入して、なんちゃってファイルサーバを作りたいと思います。

Kubuntu PCに関してはこちらをご覧ください。

https://qiita.com/ohtsuka-shota/items/1ddbfc3cb85f1edb9ec8

# 環境イメージ
簡易的ですがイメージです。
Kubuntuに共有用のフォルダを作成し、そこでWin11とKubuntu間でファイルやり取りを出来るようにしたいと思います。
Win11とKubuntuは同じネットワーク上に配置してください。
![Kubuntu.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/55e900f7-debf-f017-acad-e638ae1c9eed.png)

# 構築手順
Kubuntuでコンソールを開き、以下のコマンドを実行します。
aptをアップデートした後、Sambaをインストールします。
```
shota@shota-20f5a2v5jp:~$ sudo su -
[sudo] shota のパスワード: 
root@shota-20f5a2v5jp:~# apt update && apt upgrade -y
root@shota-20f5a2v5jp:~# apt install samba -y
```
sambaをインストール出来たら、次に共有するフォルダの設定を行っていきます。
今回は/srv/samba/sharedフォルダを共有化したいと思います。
```
root@shota-20f5a2v5jp:~# cd /
root@shota-20f5a2v5jp:/# ls -ltr
合計 80
drwxr-xr-x   2 root root  4096  2月 26  2024 bin.usr-is-merged
drwxr-xr-x   2 root root  4096  3月 31  2024 sbin.usr-is-merged
drwxr-xr-x   2 root root  4096  4月  8  2024 lib.usr-is-merged
lrwxrwxrwx   1 root root     8  4月 22  2024 sbin -> usr/sbin
lrwxrwxrwx   1 root root     9  4月 22  2024 lib64 -> usr/lib64
lrwxrwxrwx   1 root root     7  4月 22  2024 lib -> usr/lib
lrwxrwxrwx   1 root root     7  4月 22  2024 bin -> usr/bin
drwxr-xr-x  12 root root  4096  8月 27 23:17 usr
drwxr-xr-x   2 root root  4096  8月 27 23:17 srv
drwxr-xr-x   2 root root  4096  8月 27 23:17 mnt
drwx------   2 root root 16384 12月 29 19:45 lost+found
drwxr-xr-x   3 root root  4096 12月 29 19:49 home
drwxr-xr-x   3 root root  4096 12月 29 19:49 media
drwxr-xr-x  14 root root  4096 12月 29 19:55 var
drwxr-xr-x   4 root root  4096 12月 30 00:16 boot
drwxr-xr-x   3 root root  4096 12月 31 20:10 opt
drwxr-xr-x  17 root root  4096 12月 31 20:19 snap
dr-xr-xr-x  13 root root     0 12月 31 22:56 sys
dr-xr-xr-x 346 root root     0 12月 31 22:56 proc
drwxr-xr-x  19 root root  4400 12月 31 22:56 dev
drwx------   5 root root  4096 12月 31 23:31 root
drwxr-xr-x  37 root root   940  1月  1 01:36 run
drwxrwxrwt  21 root root   720  1月  1 01:36 tmp
drwxr-xr-x 147 root root 12288  1月  1 01:36 etc
root@shota-20f5a2v5jp:/# mkdir -p /srv/samba/shared
root@shota-20f5a2v5jp:/# chmod -R 0777 /srv/samba/shared
root@shota-20f5a2v5jp:/# chown -R nobody:nogroup /srv/samba/shared
```
次にSambaの設定ファイルを以下コマンドで編集します。
どこのフォルダを共有化するのか等々をSambaに伝えるための設定と考えればよいでしょう。
```
root@shota-20f5a2v5jp:/# cp -p /etc/samba/smb.conf /etc/samba/smb.conf.org
root@shota-20f5a2v5jp:/# vi /etc/samba/smb.conf
root@shota-20f5a2v5jp:/# diff /etc/samba/smb.conf /etc/samba/smb.conf.org
243,249d242
< [Shared]
< path = /srv/samba/shared
< browseable = yes
< read only = no
< guest ok = yes
< create mask = 0777
< directory mask = 0777
```
設定ファイルを編集したら、それをSambaに読み込ませるため、サービスを再起動します。
```
root@shota-20f5a2v5jp:/# systemctl restart smbd
root@shota-20f5a2v5jp:/# systemctl enable smbd
Synchronizing state of smbd.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable smbd
root@shota-20f5a2v5jp:/# systemctl status smbd
● smbd.service - Samba SMB Daemon
     Loaded: loaded (/usr/lib/systemd/system/smbd.service; enabled; preset: enabled)
     Active: active (running) since Wed 2025-01-01 01:44:58 JST; 15s ago
       Docs: man:smbd(8)
             man:samba(7)
             man:smb.conf(5)
   Main PID: 15527 (smbd)
     Status: "smbd: ready to serve connections..."
      Tasks: 3 (limit: 9284)
     Memory: 9.0M (peak: 9.2M)
        CPU: 103ms
     CGroup: /system.slice/smbd.service
             ├─15527 /usr/sbin/smbd --foreground --no-process-group
             ├─15531 "smbd: notifyd" .
             └─15532 "smbd: cleanupd "

 1月 01 01:44:57 shota-20f5a2v5jp systemd[1]: Starting smbd.service - Samba SMB Daemon...
 1月 01 01:44:57 shota-20f5a2v5jp (smbd)[15527]: smbd.service: Referenced but unset environment variable evaluates to an empty string: SMBDOPTIONS
 1月 01 01:44:58 shota-20f5a2v5jp systemd[1]: Started smbd.service - Samba SMB Daemon.
```
ufwが稼働していないことを確認します。
稼働している場合、Sambaが通信できるようにポートを開放してください。
```
root@shota-20f5a2v5jp:/# ufw status
状態: 非アクティブ
```

# 稼働確認
Win11とKubuntuでフォルダが共有化されているかを確認していきたいと思います。
Win11側でexplorerを起動して、検索窓に"\\\\\<KubuntuのIPアドレス>\shared"と入力します。
例えば、私のKubuntuは192.168.179.8のIPアドレスが振られていたため、\\192.168.179.8\sharedとなります。
アクセスが上手くいくと、ユーザ名とパスワードを求められます。Kubuntuで使用しているユーザとパスワードを入力すれば問題ありません。

以下の画面はアクセス出来たことを示すスクリーンショットです。
画像左がWin11、画像右がKubuntuで共有設定をかけたディレクトリを開いている図となります。
![2025010101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/66ffefbb-2ec7-7afa-c764-3bff6b6927d8.png)
試しにWin11からsharedファイル上に画像をアップロードしてみます。
今回はイラストや様の以下の画像を使用させて頂いております。

https://www.irasutoya.com/2013/11/blog-post_4108.html

以下がその結果となります。
画像で説明するのは、困難を極めますがWin11から画像をsharedにアップロードすると、リアルタイムでKubuntu側でも確認が出来ます。
勿論、Kubuntu側でファイルをアップロードするとWin11側で確認することが出来ます。
![2025010102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/9264ae6f-639f-e9df-1b6a-bf057b702a94.png)