WebDAVの導入

親戚に巨大なファイルを転送する必要があったことと、前々から興味があったことからWebDAVを導入してみた。基本的にここを参考にしたんだけど、うちではちょっと事情が違ったから大部分が重複するけど備忘録的に書いておこう。

WebDAVはApacheの機能として提供されるわけだけど、WebDAVでのアクセスにはapache権限が使われるとのこと。ここではdavuserという新しいユーザを作って、ファイル共有用ディレクトリにdavuser, apacheの両者がアクセスできる領域を作る。ディレクトリ所有者をapacheにすることも考えたけど、のちのちsambaを導入することを考えてみたり、アクセス権を柔軟に設定するには専用のユーザを作ったほうがよさそう。apacheのパスワードをころころ替えるとまずいことになりそうだし。あと、Windowsも対応していることからSSLを用いたよりセキュアな通信を行いたいからSSLの設定も行う。

SSLの設定はWindowsで警告のでないSSLの設定にまとめてある。

複数ユーザの権限を共有ディレクトリに設定するために、Access Control Listの設定を行う。viでfstabを以下のように編集する。# vi /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1

/dev/VolGroup00/LogVol00 / ext3 defaults,acl 1 1
ファイル共有ディレクトリが属しているパーティションに対してACLを有効化する。/homeを別パーティションにしているならば、/homeだけにACLを有効化したほうがいいだろう。
ルートディレクトリのACL設定を有効にするためにリマウントする。# mount -o remount /ルートをリマウントするなんて恐そうだけど、telnet経由で実行したにも関わらず問題無く実行完了。

新規ユーザと共有ディレクトリを作って、ACLを作成しよう。
新規ユーザ(davuser)の作成。# useradd -s /sbin/nologin davuserパスワードの設定# passwd davuser
Changing password for user davuser.
New UNIX password:****** ← パスワード入力
Retype new UNIX password:****** ← 再入力

共有ディレクトリの作成。# mkdir /home/fileshare/common共有ディレクトリの所有者をdavuserに変更# chown davuser. /home/fileshare/common/
共有ディレクトリへapacheグループ権限で参照・更新・実行を許可する。# setfacl -m g:apache:rwx,g:apache:rwx /home/fileshare/common/
共有ディレクトリで新規作成されるファイルへapacheグループ権限で参照・更新・実行を許可する。# setfacl -m d:g:apache:rwx,g:apache:rwx /home/fileshare/common/
共有ディレクトリへdavuserグループ権限で参照・更新・実行を許可する。# setfacl -m g:davuser:rwx,g:davuser:rwx /home/fileshare/common/
共有ディレクトリで新規作成されるファイルへdavuserグループ権限で参照・更新・実行を許可する。# setfacl -m d:g:davuser:rwx,g:davuser:rwx /home/fileshare/common/# ls -al /home/fileshareとやって、commonディレクトリのアクセス権の最後に「+」がついていればOK。
ACL設定は以下のように確認できる。# getfacl /home/fileshare/common
ちなみに、ACL設定の解除は以下のように行う(らしい。やったことないから分からないけど)。# setfacl -b /home/fileshare/common/

次にWebDAVの設定だけど、WebDAVモジュール自体はすでに組み込まれているから、apacheのconfファイルをいじるだけ。/etc/httpd/conf/httpd.conf(バックアップをとってからね)をお好みのエディタで開いて、以下の記述を追加する。Alias /share "/home/fileshare/common"
<location "/share">
DAV On
SSLRequireSSL
AllowOverride None
Options None
AuthType Basic ← BASIC認証を有効にする
AuthName File Share ← 認証ウィンドウに表示される名前(なんでもよい)
AuthUserFile /home/fileshare/conf/.htpasswd ← .htpasswdへの絶対パス
Require user davuser ← BASIC認証でアクセス許可するユーザ
</location>
httpd.confにBASIC認証の部分をまとめて書くよりも.htaccessで制御したほうが柔軟に管理できるかな、と思ったけどどうもうまく設定できない。しかも、共有ディレクトリ上に置かれている.htaccessが見えちゃっているのも都合が悪いし。よって.htaccess化は断念。

最後にBASIC認証用のパスワードファイルを作ろう。新規の場合は# htpasswd -c /home/fileshare/conf/.htpasswd davuser
New password:****** ← パスワード入力
Re-type new password:****** ← 再入力
と設定する。
再設定/追加設定の場合は、# htpasswd /home/fileshare/conf/.htpasswd davuser
New password:****** ← パスワード入力
Re-type new password:****** ← 再入力
と設定する。

これでサーバ側の設定は完了。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です