labunix's blog

labunixのラボUnix

BoxをWebDAV(davfs2)でマウントしてみる。

■BoxをWebDAV(davfs2)でマウントしてみる。

$ lsb_release -d
Description:	Debian GNU/Linux 9.9 (stretch)

$ apt-file search davfs2 |grep etc
davfs2: /etc/davfs2/davfs2.conf
davfs2: /etc/davfs2/secrets

$ sudo apt-get install -y davfs2
$ dpkg -l | awk '/^ii/&&/davfs2/{gsub("   *",",",$0);print $0}'
ii,davfs2,1.5.4-2+b1,amd64,mount a WebDAV resource as a regular file system

■root以外もマウント出来るようにする。
 デフォルトのまま進めた場合はrootのみなので、再設定は以下のように。

$ sudo dpkg-reconfigure davfs2

■プロキシの設定をする。

$ sudo grep proxy /etc/davfs2/*.conf
# use_proxy       1                 # system wide config file only
# proxy                             # system wide config file only

$ awk '$1 !~ /^#|^$/' /etc/davfs2/*.conf
use_proxy 1
proxy http://172.31.31.60:8080/

■boxをマウントする。

$ sudo mkdir /media/box/

$ sudo mount -t davfs https://dav.box.com/dav /media/box/ -o uid=labunix -o gid=labunix
Please enter the username to authenticate with proxy
172.31.31.60 or hit enter for none.
  Username: 
Please enter the password to authenticate user  with proxy
172.31.31.60 or hit enter for none.
  Password:  
Please enter the username to authenticate with server
https://dav.box.com/dav or hit enter for none.
  Username: xxxxxxxx
Please enter the password to authenticate user xxxxxxxx with server
https://dav.box.com/dav or hit enter for none.
  Password:  

$ ls -l /media/box/ | grep "doc\|lost"
-rw-r--r-- 1 labunix labunix      60 1125 23:52 1511199055203-AUTO.doc
drwx------ 2 labunix labunix       0  526 16:51 lost+found

$ ls -l --time-style='+%Y/%m/%d-%H:%M:%S' /media/box/ | grep "doc\|lost"
-rw-r--r-- 1 labunix labunix      60 2018/11/25-23:52:50 1511199055203-AUTO.doc
drwx------ 2 labunix labunix       0 2019/05/26-16:51:34 lost+found

■プロキシの認証を空に、box認証情報をsecretsに設定

$ sudo awk '$1 !~ /^#|^$/' /etc/davfs2/secrets 
172.31.31.60:8080		""	""
https://dav.box.com/dav	xxxxxxxx	"xxxxxxxxxxxx"

$ sudo umount /media/box 
/sbin/umount.davfs: waiting while mount.davfs (pid 7477) synchronizes the cache .. OK

$ sudo mount -t davfs https://dav.box.com/dav /media/box/ -o uid=labunix -o gid=labunix
■fstabに設定

$ awk '/dav/' /etc/fstab
https://dav.box.com/dav /media/box/ davfs user,noauto 0 0

$ sudo umount /media/box
/sbin/umount.davfs: waiting while mount.davfs (pid 7640) synchronizes the cache .. OK

$ sudo mount /media/box

$ mount /media/box
/sbin/mount.davfs: user labunix must be member of group davfs2
■グループの追加には、「usermod -aG」ではなく、gpasswdを使う。

$ sudo gpasswd -a labunix davfs2
ユーザ labunix をグループ davfs2 に追加

$ awk '/labunix/&&/davfs2/' /etc/group
davfs2:x:130:labunix

$ sudo awk '/labunix/&&/davfs/' /etc/gshadow 
davfs2:!::labunix

■ログオフせずに反映するためにsuを使う。

$ su labunix
パスワード:

$ id -G | tr ' ' '\n' | grep 130
130

$ mount /media/box

$ ls -ld /media/box/lost+found/
drwx------ 2 labunix labunix 0  526 17:33 /media/box/lost+found/

$ exit
exit

$ id -G | tr ' ' '\n' | grep 130

■fstab、ps、mountでそれぞれのコマンドで、defaultで付与されるオプションを確認する。

$ awk '/dav/' /etc/fstab
https://dav.box.com/dav /media/box/ davfs user,noauto 0 0

$ ps xo cmd | grep da[v]
/sbin/mount.davfs https://dav.box.com/dav /media/box -o rw noexec nosuid nodev user

$ mount | grep box | awk '{gsub("\\(|,|\\)","\n  &",$0);print $0}'
https://dav.box.com/dav on /media/box type fuse 
  (rw
  ,nosuid
  ,nodev
  ,noexec
  ,relatime
  ,user_id=1000
  ,group_id=1000
  ,allow_other
  ,max_read=16384
  ,uid=1000
  ,gid=1000
  ,user=labunix
  ,helper=davfs
  )

■プロキシログ

$ sudo awk '/dav./{a=$0}END{print a}' /var/log/squid3/access.log | \
      sed -e 's/ "/\n&/g' -e 's/172.31.31.[0-9]*/172.31.31.XX/g'
172.31.31.XX - - [26/May/2019:17:37:13 +0900]
 "CONNECT dav.box.com:443 HTTP/1.1" 200 34982
 "-"
 "davfs2/1.5.4 neon/0.30.2" TCP_TUNNEL:HIER_DIRECT