EC2にSambaを構築して複数ユーザでファイル共有してみた

渡邊です。

前回のに引き続きSamba環境の構築を行います。

前回記事 EC2にSambaを構築してWindowsからファイル共有してみた
http://recipe.kc-cloud.jp/archives/10873
今回は、EC2上に構築したSamba環境で複数ユーザが1つのフォルダを共有できるように設定します。

Samba設定変更

前回はkcsambaユーザのホームディレクトリ配下に共有フォルダを作成しましたが、
今回は複数ユーザで共有するために、/tmpディレクトリ配下に共有フォルダを作成しようと思います。

設定を変更する前にSambaサービスを停止しておきます。

共有フォルダへアクセス出来るユーザが属するグループを作成します。
今回はグループ名を「samba」とします。

kcsambaユーザで/tmp配下に共有フォルダを作成します。
今回もフォルダ名を「samba」とします。

kcsambaユーザをsambaグループに所属させます。

/tmp/sambaフォルダの所有グループをsambaグループにします。

/tmp/sambaフォルダにアクセス出来るユーザを「所有者(今回の場合、kcsambaユーザ)」と「所有グループに属するユーザ(今回の場合、sambaグループに属するユーザ)」のみに制限します。更に、/tmp/samba配下に作成されるファイルやディレクトリの所有グループが、/tmp/sambaから継承されるようにSGID(Set Group ID)を設定しておきます。

Sambaの設定ファイルを開きます。

Sambaの設定ファイルを下記のように変更します。
・pathの値を/tmp/sambaに変更
・共有フォルダ配下に作成されるファイルやディレクトリに親ディレクトリ(今回の場合、/tmp/samba)の権限設定を継承させるため「inherit permissions = yes」を追記

Sambaユーザ追加

共有フォルダにアクセスする2ユーザを作成します。
今回はkcuser1とkcuser2とします。
sambaグループに所属させ、Sambaユーザに追加します。

Sambaサービスを起動させます。

動作確認

kcuser1とkcuser2の2ユーザが共有フォルダへアクセス出来るかどうか、動作を確認します。
まず、ローカルWindows PCから共有フォルダへkcuser1アカウントでアクセスします。

アクセス出来ました。空のテキストファイルを作成してみます。

テキストファイルの作成に成功しましたので、kcuser1に書き込み権限があることが確認出来ました。


同様にkcuser2アカウントで共有フォルダへアクセスします。


アクセス出来ました。空のテキストファイルを作成してみます。

テキストファイルの作成に成功しましたので、kcuser2にも書き込み権限があることが確認出来ました。

次に、kcuser1が作成したファイルをkcuser2が編集・保存出来るかどうか確認します。
kcuser1が作成したファイルをエディタで開きます。

空のファイルに追記して保存します。


ファイルを保存出来ました。


エクスプローラ上でもファイルサイズが増加したことが確認出来ます。


次に、kcuser2が作成したファイルをkcuser1が編集・保存出来るかどうか確認します。
kcuser1で再度ログインします。


kcuser2が作成したファイルをエディタで開きます。

空のファイルに追記して保存します。


ファイルを保存出来ました。

エクスプローラ上でもファイルサイズが増加したことが確認出来ます。


EC2インスタンスのコンソール上でファイルやディレクトリの権限設定を確認出来ます。
先程のテストで作成したテキストファイルの内容も確認出来ます。

おわりに

以上、EC2インスタンス上にSambaを構築して、複数ユーザでフォルダを共有する手順をまとめました。

ユーザが自身で作成したファイルを編集・保存するだけであれば、前回と同様にユーザを追加するだけで実現出来ます。しかし、他のユーザが作成したファイルも編集・保存出来るようにするために、「SGID」や「権限の継承」の設定が必要になります。
Linuxはある程度扱えるつもりでいましたが、まだまだ奥が深く、今回の構築・設定でも得るものがありました。

最後までお読み頂きありがとうございました。

この記事を書いた人

aws-recipe-user