書き込み専用の共有
sambaでデータの提出専用みたいな共有が作れないかと試してみました.
sambaサーバ の /etc/samba/smb.conf を編集して write-only という共有を作成.
[write-only] # 共有ファイルの保存先 path = /export/data/write-only # 共有が見えるように browseable = yes # ゲストアクセス許可 guest ok = yes guest only = yes # 書き込み可能 writable = Yes # ゲストで書き込むと nobody アカウントで保存される guest account = nobody # umaskを 0333 に create mask = 0333 directory mask = 0333 # 読み込み権のないファイルを見えなくする hide unreadable = Yes
samba の設定を反映する
$ sudo service samba reload
クライアントPCから共有に接続して動作確認する
gvfs-mount で mount して,マウントポイントを確認.
$ gvfs-mount smb://192.168.1.102/write-only $ mount|grep gvfs gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000) client$ $ ls -la /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/ 合計 0 drwx------ 1 mk mk 0 5月 25 19:13 . dr-x------ 3 mk mk 0 5月 21 05:54 ..
書き込んでみる
$ echo hoge > /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/hoge
書き込んだファイルは見えない
$ ls -la /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/ 合計 0 drwx------ 1 mk mk 0 5月 25 19:24 . dr-x------ 3 mk mk 0 5月 21 05:54 .. $ cat /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/hoge $ cat: '/run/user/1000/gvfs/smb-share:server=192.168.1.102,share=write-only/hoge': 許可がありません
serverではこんな感じで見える
$ ls -lA /export/data/write-only 合計 4 --wx-w---- 1 nobody nogroup 5 5月 25 19:24 hoge $ sudo cat /export/data/write-only/hoge hoge
クライアントから同名のファイル名で上書きするとエラーもなく書き込める
$ echo fuga > /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/hoge
サーバで書き換わっているのを確認
$ sudo cat /export/data/write-only/hoge fuga