2011年5月1日日曜日

apache webdav つづきの Tips

* URL の変更
   https://servername/~chamaken/.webdav がちょっと格好悪いので /webdav
   でアクセス。認証ユーザによって URL を変更する方法。いくつかあるらしい
   けど、説明ページの多い mod_rewrite を利用。

   # ~ をなくすには AliasMatch ^/([^/]+)/(.*) /home/$1/.webdav/$2 だそうだ

       # a2enmod rewrite
        Enabling module rewrite.
        Run '/etc/init.d/apache2 restart' to activate new configuration!
        # mv default-ssl default-ssl.dpkg-dist
        # cp default-ssl.dpkg-dist default-ssl
        # emacs default-ssl
        # diff -uw default-ssl.dpkg-dist default-ssl
        --- default-ssl.dpkg-dist       2011-03-23 06:13:14.000000000 +0900
        +++ default-ssl 2011-04-30 22:28:06.000000000 +0900
        @@ -168,5 +168,13 @@
                # MSIE 7 and newer should be able to use keepalive
                BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
 
        +        # mod_rewrite
        +        RewriteEngine on
        +        RewriteLog "/var/log/apache2/rewrite.log"
        +        RewriteLogLevel 1
        +
        +        RewriteCond %{LA-U:REMOTE_USER} (.*)
        +        RewriteRule ^/webdav(.*) /~%{LA-U:REMOTE_USER}/public_html/.webdav$1 [NS,L]
        +        RewriteRule ^/private(.*) /~%{LA-U:REMOTE_USER}/public_html/private$1 [NS,L]
         </VirtualHost>
         </IfModule>

   これで https://servername/webdav とアクセスすると認証したユーザ名で、
   ソレナリの URL に変換される


* davfs2
   webdab アクセスするユーザの所属するグループを増やしてよいのであれば、
   設定ファイルは特段変更せず当該ユーザを davfs2 グループに加えてあげる。

       # aptitude install davfs2
       ...
       # adduser chamaken davfs2
       Adding user `chamaken' to group `davfs2' ...
       Adding user chamaken to group davfs2
       Done.

   やっぱり root で引き続き。/etc/fstab に追記

       # cd /etc
       # cp fstab fstab.old
       # vi fstab
       # diff -uw fstab.old fstab
       --- fstab.old 2011-05-01 08:07:33.000000000 +0900
       +++ fstab 2011-05-01 08:08:59.000000000 +0900
       @@ -11,3 +11,5 @@
        # swap was on /dev/sda5 during installation
        /dev/sda5 none            swap    sw              0 0
        /dev/scd0 /media/cdrom0   udf,iso9660 user,noauto 0 0
       +https://localhost/webdav /home/chamaken/webdav davfs defaults,user,noauto 0 0
       +
       # 

   うーん、ちょっと微妙だけど一般ユーザから操作したいので setuid

       # chmod u+s /usr/sbin/mount.davfs

   一般ユーザアカウントで

       $ mount webdav
       Please enter the username to authenticate with server
       https://localhost/webdav or hit enter for none.
         Username: chamaken
       Please enter the password to authenticate user chamas with server
       https://localhost/webdav or hit enter for none.
         Password:  パスワード
       /sbin/mount.davfs: the server certificate does not match the server name
       /sbin/mount.davfs: the server certificate is not trusted
         issuer:      oreore
         subject:     oreore
         identity:    oreore.invalid.net
         fingerprint: aa:bb:cc:dd:ee:ff:11:22:33:44:55:66:77:88:99:00:11:22:33:44
       You only should accept this certificate, if you can
       verify the fingerprint! The server might be faked
       or there might be a man-in-the-middle-attack.
       Accept certificate for this session? [y,N] y

   何だか自分のホーム配下に間接アクセスはもぞかしいいけど、まぁ

   
* (意味がないけど) quota
   apache webdav quota で調べるとモジュールがあったり FAQ では obsolute
   になったモジュール使うかコンパイルし直してハンドラ書けとかあるけど、
   何かソコまでやる元気がないと言うか...

   で、あまり意味がなくなってしまったけど、普通の quota 設定も備忘録とし
   て残しておこうかと。How To Set Up Journaled Quota On Debian Lenny
   そのままとはちょっと違っていたので

   # げっ.../home 切ってないし

       # aptitude install quota quotatool
       ...
       # cp fstab fstab.old
       # vi fstab
       # diff -uw fstab.old fs
       --- fstab.old 2011-05-01 08:08:59.000000000 +0900
       +++ fstab 2011-05-01 08:39:53.000000000 +0900
       @@ -7,7 +7,9 @@
        #                
        proc            /proc           proc    defaults        0       0
        # / was on /dev/sda1 during installation
       -/dev/sda1 / ext3    errors=remount-ro 0       1
       +/dev/sda1 / ext3    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1
        # swap was on /dev/sda5 during installation

   ここで touch /aquota.user /aquota.group すると後でサイズおかしいとか
   言われるので作らずに

       # cd /
       # mount -o remount /
       # quotacheck -avugm
       quotacheck: Scanning /dev/sda1 [/] done
       quotacheck: Cannot stat old user quota file: No such file or directory
       quotacheck: Cannot stat old group quota file: No such file or directory
       quotacheck: Cannot stat old user quota file: No such file or directory
       quotacheck: Cannot stat old group quota file: No such file or directory
       quotacheck: Checked 17441 directories and 259009 files
       quotacheck: Old file not found.
       quotacheck: Old file not found.
       # ls -l /aquota.*
       -rw------- 1 root root 10240 May  1 08:40 /aquota.group
       -rw------- 1 root root  9216 May  1 08:40 /aquota.user
       # quotaon -avug
       /dev/sda1 [/]: group quotas turned on
       /dev/sda1 [/]: user quotas turned on

   linux quota で検索すると、ここで edquota になるんだけど、サイズ指定よ
   くわかんなかったりエディタでの編集煩しく quotatool 使用。quotatool(8)
   眺めた後に

       # id -u chamaken
       1000
       # quotatool -u 1000 -d /
       # quotatool -b -u 1000 -q $((1024 * 32))MB -l $((1024 * 32 - 128))MB /
       # quotatool -u 1000 -d /
       1000 / 4022884 33554432 33423360 0 140959 0 0 0

0 件のコメント: