2017.3.1

Samba共有で、特定のグループだけに特定フォルダを表示する

include Samba-Ⅱ

共有セクションでの表示やアクセス制限は、

browseable = no     *この共有を表示しない。単に見えないだけでアクセスは可能。
valid users = user_name, @group_name     *ログインできるユーザー、グループの指定。


などで指定できる。参照:sambaで共有ネットワーク環境構築 [pdf]

しかし、更に、オフィスのセクション別に、特定のフォルダを表示したり、
あるいは非表示にしたりしてアクセス制限をかけたいケースがある。

そんな時に便利なパラメータ。

include
    ある特定ファイル中に別のファイルを挿入できる。
    %u, %P, %Sパラメーターを除き標準の変数置換が適用される。


<設定環境>

オフィスに、TokyoチームとMiyagiチームがあるとする。
それぞれが利用する共有フォルダは
Tokyoチーム : share_report と tokyo_public
Miyagiチーム : share_report と miyagi_public

  *前提としてSambaユーザーに適正アカウントが
    付与されているものとする。


●グループの作成

$ sudo groupadd team-tokyo
$ sudo groupadd team-miyagi


● /etc/samba/smb.conf の編集

#=== Global Settings ===
[global]
### Browsing/Identification ###
2行を追記
# including
include = /etc/samba/%G.conf

#=== Share Definitions ====
[share_report]
path = /home/share_report
browseable = yes
writable = yes
guest ok = no
valid users = @team-tokyo, @team-miyagi


● /etc/samba/team-tokyo.conf の作成

#=== Share Definitions ====
# include dir
[tokyo_piblic]
path = /home/tokyo_public
browseable = yes
writable = yes
guest ok = no
valid users = @team-tokyo


● /etc/samba/team-miyagi.conf の作成

#=== Share Definitions ====
# include dir
[miyagi_piblic]
path = /home/miyagi_public
browseable = yes
writable = yes
guest ok = no
valid users = @team-miyagi


これで、team-tokyoグループに登録されているユーザーと、
team-miyagiグループに登録されているユーザーごとに、
それぞれ必要な共有表示だけがされる。
もちろん、表示されていないフォルダへはアクセスできない。

ただし、include = /etc/samba/%G.conf についての、
Sambaユーザーのグループ登録は、
プライマリグループ(gid)であることが必要。

  NG : $ sudo usermod -G team-tokyo user_name
  OK : $ sudo usermod -g team-tokyo user_name

確認 : $ id user_name


Copyright(C) green-pen miyagi