■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
$ 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 11月 25 23:52 1511199055203-AUTO.doc
drwx------ 2 labunix labunix 0 5月 26 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 5月 26 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