WebDAVでフォルダー毎のアクセス制御
WebDAVのルートフォルダーが /davfolder だったとして・・・(WebDAVクライアントとして、CarotDAVを使用)。
【やりたいこと】
・/davfolder は、認証を通っていれば誰でも閲覧可能。ただし、誰も書き込み不可(サブフォルダーの削除やリネームも不可)
・/davfolder/group1 およびその下位フォルダーは、管理者と、group1に含まれるユーザーが読み書き可能
・/davfolder/group2 およびその下位フォルダーは、管理者と、group2に含まれるユーザーが読み書き可能
・/davfolder/share およびその下位フォルダーは、認証を通っているユーザーが読み書き可能
・極力ラクに設定を定義したい(個々のフォルダ毎にdav onの記述などをしたくない)。
【結論】
・どうにも上手く設定できず・・・。
・WebDAVフォルダで「読み取りのみ」ユーザーと「読み書き」ユーザーを区別する の時と参考に、/davfolder 直下において GET リクエストに限定してみたところ、そもそも認証なしでアクセスできるようになってしまった(何故?)。
・/davfolder の所有者をrootに、その配下のフォルダの所有者をapacheにしたところ、書き込みはできなくなったが、配下のフォルダに対して「削除」を行うと、フォルダ内のファイルをがっつりと削除できてしまった(フォルダそのものは残る)。
ってことで諦めて、 /davfolder 直下は管理者のみアクセスできるようにし、group1のユーザーがgroup1フォルダーとshareフォルダーを行き来する場合は、直接URLを入力してもらうことに(本当はURLを直接入力せずにフォルダ移動できるようにしたかったのですが・・・残念)。
最終的な設定は以下のような感じ。
<Location /davfolder>
Dav on
Allow from all
Options Indexes
IndexOptions FancyIndexing FoldersFirst Charset=UTF-8 NameWidth=*
AuthName "Webdav Folder"
AuthType Basic
AuthUserFile /etc/httpd/conf.d/.htpasswd
AuthGroupFile /etc/httpd/conf.d/dav.group
Require group admin
</Location>
<Location /davfolder/group1>
Require group admin group1
</Location>
<Location /davfolder/group2>
Require group admin group2
</Location>
<Location /davfolder/share>
Require valid-user
</Location>
#本当はもっといい方法があるんでしょうけど・・・。
「Linux」カテゴリの記事
- KVMでネットワークをNATにしている場合(2013.01.09)
- snmptrapdでtraphandleが反応しない(2012.10.18)
- SSLInsecureRenegotiation(2012.10.08)
- ntlmaps(2012.10.06)
- ReadyNAS NV+ v2 で Subversion(2012.09.30)
The comments to this entry are closed.
Comments
Dav on
Allow from all
Options Indexes
IndexOptions FancyIndexing FoldersFirst Charset=UTF-8 NameWidth=*
AuthName "Webdav Folder"
AuthType Basic
AuthUserFile /etc/httpd/conf.d/.htpasswd
AuthGroupFile /etc/httpd/conf.d/dav.group
Require group admin
Require group group1 group2
以下略
でいけませんか?
解決してるかもしれませんが。
Posted by: ゆうは。 | 2011.11.06 22:40
あら。たぐの部分がきえてもうた。
Limit GET PROPFIND OPTIONS
Require group group1 group2
/Limit
です
Posted by: ゆうは。 | 2011.11.06 22:42