豚吐露@wiki
共有フォルダでアクセス権の無いファイルを見せたくない
最終更新:
ohden
-
view
共有フォルダでアクセス権の無いファイルを見せたくない
Ubuntu10.04LTS Desktop
Samba 3.4.7
Samba 3.4.7
sambaの共有設定で『hide unreadable』ってのを使う。
この項目をYesにしておくと、アクセス権の無いfileが表示されなくなる。
この項目をYesにしておくと、アクセス権の無いfileが表示されなくなる。
e.g.)shareって名前にしてみる。
$ sudo mkdir /var/samba/share $ sudo chmod 777 /var/samba/share $ sudo vi /etc/samba/smb.conf
末尾に追加。
- [share]
- comment = Public Stuff
- path = /var/samba/share
- browseable = yes
- public = yes
- create mode = 660
- directory mode = 770
- writeable = true
- hide unreadable = yes
-
チェック。
$ /usr/local/samba/bin/testparm /etc/samba/smb.conf
samba再起動。
$ sudo killall smbd $ sudo killall nmbd $ sudo /usr/local/samba/sbin/smbd -D $ sudo /usr/local/samba/sbin/nmbd -D
で、この子をmountする。
とりあえず、説明のためのユーザとして3人登場させてみる。それぞれのパスワードも以下のものとし、smbpasswdで設定済みとする。
とりあえず、説明のためのユーザとして3人登場させてみる。それぞれのパスワードも以下のものとし、smbpasswdで設定済みとする。
username | password | |
A | user_a | pass_a |
B | user_b | pass_b |
X | user_x | pass_x |
で、A、Bのumaskを変更する。
$ umask 027
これで新規作成されるfileやdirで、Otherの読み、書き、実行権限が無くなる。
※恒久的にやりたかったら『/etc/profile』の記述をいじる。file末尾にumaskが書かれてるハズ。
※恒久的にやりたかったら『/etc/profile』の記述をいじる。file末尾にumaskが書かれてるハズ。
で、前準備。
$ sudo mkdir /home/user_a/mnt $ sudo mkdir /home/user_b/mnt $ sudo mkdir /home/user_x/mnt $ sudo chown user_a:user_a /home/user_a/mnt $ sudo chown user_b:user_b /home/user_b/mnt $ sudo chown user_x:user_x /home/user_x/mnt
いざmount。
あ、一応、samba立てた鯖のipは『192.168.1.100』という設定で。
あ、一応、samba立てた鯖のipは『192.168.1.100』という設定で。
$ sudo mount -t cifs -o user=user_a,password=pass_a //192.168.1.100/share /home/user_a/mnt $ sudo mount -t cifs -o user=user_b,password=pass_b //192.168.1.100/share /home/user_b/mnt $ sudo mount -t cifs -o user=user_x,password=pass_x //192.168.1.100/share /home/user_x/mnt
で、動きを確かめてみる。
Aでloginしてmntにfile作成。
Aでloginしてmntにfile作成。
$ cd mnt $ touch A
Bでloginしてmntにfile作成。
$ cd mnt $ touch B
Aでls。
合計 0 -rw-r----- 1 user_a user_a 0 2011-11-09 21:14 A |
Bでls。
合計 0 -rw-r----- 1 user_b user_b 0 2011-11-09 21:15 B |
それぞれ同じ『//localhost/share』をmountしているが、見えない。
で、『/var/samba/share』の中身を見てみると...ちゃんと中には2fileある。
で、『/var/samba/share』の中身を見てみると...ちゃんと中には2fileある。
合計 0 -rw-r----- 1 user_a user_a 0 2011-11-09 21:14 user_a -rw-r----- 1 user_b user_b 0 2011-11-09 21:15 user_b |
で、A、Bはお互いのfileが見えなくなって万々歳なんだけど、実は両方のfileが見えなきゃいけない監督者のXさんが居たとする。
そんな時は、XさんをAさん、Bさんのプライマリグループに所属させる。
そんな時は、XさんをAさん、Bさんのプライマリグループに所属させる。
$ sudo vi /etc/group
どっかにAとBのプライマリグループがあるので、そいつにuser_xを追加する。
user_a:x:1007:user_x user_b:x:1008:user_x user_x:x:1009: |
$ id user_x
uid=1008(user_x) gid=1009(user_x) 所属グループ=1009(user_x),4(adm),20(dialout),21(fax),24(cdrom),25(floppy),26(tape),30(dip),44(video),46(plugdev),104(fuse),121(nopasswdlogin),1007(user_a),1008(user_b) |
で、再起動せんでもgroup変更反映されるんじゃが、sambaの方は上手いこと動かんかった。
group変更してからmountすればえぇんかな?めんどくさかったんでOS再起動したらちゃんと動いてるの確認できたが...
Xでloginして確認。
group変更してからmountすればえぇんかな?めんどくさかったんでOS再起動したらちゃんと動いてるの確認できたが...
Xでloginして確認。
$ cd mnt $ ll
合計 0 -rw-r----- 1 user_a user_a 0 2011-11-09 21:14 A -rw-r----- 1 user_b user_b 0 2011-11-09 21:21 B |
両方のfileが見えてる。(*´ω`)b
あと、起動時に自動mountさせたかったらこんな感じ。
$ sudo vi /etc/fstab
末尾に以下を追加。
- //192.168.1.100/share /home/user_a/mnt smbfs user=user_a,password=pass_a 0 0
- //192.168.1.100/share /home/user_b/mnt smbfs user=user_b,password=pass_b 0 0
- //192.168.1.100/share /home/user_x/mnt smbfs user=user_x,password=pass_x 0 0
-
※fedora15じゃ、自動mountしてくれんかった。タイプをsmbfsからcifsに変えたらmountしてくれた。
更新日: 2011年11月18日 (金) 09時13分13秒