UBUNTU SERVER

Ubuntu Server で SMB ファイル共有をグループ単位で行う

複数ユーザーで同じSamba共有に読み書きするためのグループ権限設定。

複数のユーザーで同じフォルダに書き込み(編集・追加)を行えるようにする場合、Sambaの設定(smb.conf)にユーザーを追加するだけでは不十分で、「Ubuntu OS側のファイルアクセス権限(パーミッション)」も併せて調整する必要があります。

(Aさんが作ったファイルをBさんが編集しようとした時に「アクセス拒否」されるのを防ぐためです。)

最も管理しやすく、トラブルが起きにくい「共有用のグループを作成して管理する方法」をステップ・バイ・ステップで解説します。


ステップ 1:共有用グループの作成

まず、Samba共有にアクセスするユーザーをまとめるためのグループ(ここでは smbshare とします)を作成します。

sudo groupadd smbshare

ステップ 2:既存ユーザーと新ユーザーのグループ追加

ご自身のユーザーと、新しく追加したいユーザーをこのグループに参加させます。

1. ご自身のユーザーをグループに追加する

sudo usermod -aG smbshare $USER

2. 新しいユーザーを作成し、Samba用パスワードを設定する

(※このユーザーはファイル共有専用とし、セキュリティのためUbuntu自体へのSSHログイン等はできないように設定します)

# ユーザーを作成(-M: ホームディレクトリを作らない, -s: ログインを禁止)
sudo useradd -M -s /sbin/nologin 新しいユーザー名

# 作成したユーザーを共有グループに追加
sudo usermod -aG smbshare 新しいユーザー名

# そのユーザーのSamba用パスワードを設定(2回入力を求められます)
sudo smbpasswd -a 新しいユーザー名

※ユーザーをさらに増やしたい場合は、この「2. 新しいユーザーを作成〜」の手順を繰り返すだけでOKです。

ステップ 3:共有フォルダの権限(パーミッション)変更

対象のディレクトリを、先ほど作った smbshare グループが自由に読み書きできるように変更します。

# ディレクトリの「グループ」を smbshare に変更
sudo chgrp -R smbshare /srv/samba/share

# グループに書き込み権限を付与(重要: '2' はSGIDという特殊な権限です)
sudo chmod -R 2775 /srv/samba/share
💡 TIPS:
2775 の頭の 2(SGID)を設定しておくことで、今後誰がこのフォルダ内に新しいファイルを作っても、ファイルの所有グループが自動的に smbshare になります。これがないと、他人のファイルを編集できなくなってしまいます。

ステップ 4:Sambaの設定ファイル(smb.conf)の修正

設定ファイルを開き、グループでアクセスできるように書き換えます。

sudo nano /etc/samba/smb.conf

一番下の [MyShare] の項目を、以下のように変更・追記してください。

[MyShare]
   comment = Private File Share
   path = /srv/samba/share
   read only = no
   browsable = yes
   # 変更: 個別のユーザー名ではなく、@をつけてグループ名にする
   valid users = @smbshare
   
   # 追記: ファイル作成時の権限を強制的にグループ共有設定にする
   force group = smbshare
   create mask = 0664
   directory mask = 2775
  • @smbshare と記述することで、「このグループに属している人は全員アクセスOK」という意味になります。
  • 下3行(force group 以降)は、Windowsなどから新しくフォルダやファイルを作った際に、正しい権限が割り当てられるようにするためのおまじないです。

書き換えたら Ctrl + OEnter で保存し、Ctrl + X で閉じます。

ステップ 5:Sambaの再起動

設定を反映させるためにSambaを再起動します。

sudo systemctl restart smbd

これで設定は完了です。

新しく追加したユーザー名とSambaパスワードを使って、別のPCからアクセスし、ファイルの作成や編集ができるかテストしてみてください。