「WebDAV」カテゴリーアーカイブ

TeamFileでWebDAV

VistaでWebDAVが出来なくなって途方にくれていたら、TeamFileというWebDAVアプリがあることが分かった。そして、なんとそのクライアント(ようするにWebDAVクライアント)はフリーであると!!

早速試してみると、Vista上でまるで嘘のように簡単にUbuntu+Apache2上のWebDAV(いんちきSSL有効)に接続できた。しかもこのクライアント、とても優秀でエクスプローラと連携できて、「コンピュータ」からあたかもローカルディスクかのごとくアクセスできてしまう。

接続まで若干待たされるが、使い勝手は上々。TeamFileで開いたフォルダのファイルをダブルクリックすれば、そのファイルはテンポラリディレクトリにダウンロードされ、そこから関連付いたアプリで自動的に開いてくれる。これは便利。

しかも、現在のWebDAVの設定はあまり煮詰められていないので、WindowsXPのOS機能ではアクセスできないが、ここでもTeamFileを使えばこれも嘘のように簡単にアクセスできる。

WindowsのWebDAVアクセスはTeamFileで決まりだね。

VistaでWebDAV(3)

今日、VistaでWebDAV接続できない問題はどうなったかな・・・ と、ググッて見たら大して進展はなかった。このサイトの以前の記事が比較的上位にランクアップしていただけ (^_^;)

やれやれ、と思って念のために海外サイトまで検索してみたら、いままで見たことのないサイトを発見した。なんと、VistaでWebDAV接続する方法が書かれていた。

その方法とは、

  1. [コンピュータ]−[ネットワークドライブの割り当て]をクリックする
  2. 「ネットワークドライブの割り当て」ウィンドウが開くので、[ドキュメントと画像の保存に使用するWebサイトに接続します。]をクリックする
  3. 「ネットワークの場所の追加ウィンドウ」が開くので、[次へ]をクリックする
  4. [カスタムのネットワークの場所を選択]が選択されている状態で、[次へ]をクリックする
  5. [インターネットまたはネットワークのアドレス]テキストボックスにWebDAVのURLを入力する(例: https://www.hoge.com/hoge)
  6. ユーザIDとパスワードの入力ウィンドウが開くので、ユーザIDとパスワードを入力する
  7. ちなみに、(以前のWindowsもそうだったように)2回聞かれるので、2回ユーザIDとパスワードを入力する。[パスワードを記憶する]にチェックを入れると次回からは自動的につながるはず。それと、2回目はWindows共有に用いるようなユーザIDが勝手に入力されているが、これをクリアしてユーザIDを入力する必要があるかもしれない。

で、無事net useを使わずにWebDAVフォルダにドライブレターを割り当てられたのだが・・・

なぜかもう2度とできない・・・
net useを使うときもときどき失敗することあるし。なんかVistaのWebDAV実装はバクのにおいがする。

VistaでWebDAV(2)

どうやらWindows VistaのWebDAV実装にはバグがあるらしい。ここの、この投稿によると、WebDAVサーバに対するOPTIONSの処理に不具合があって、root以下のディレクトリに遷移出来なくなる、というエラーらしい。しかも、次のWindowsのリリース(?)には直る、と彼は言っている。彼は何者?

さらに、httpで基本認証はVistaでは無効になっているらしい。まあ、それは正しい措置だと思う。でも、この方法で解除することも可能らしい。Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Services\WebClient\Parameters "BasicAuthLevel" (REG_DWORD)の設定を、1 から 2 にする、ということらしい。

WebDAVといえばMicrosoftが推進していたはず。そんなところでバク出しちゃいかんよ。

VistaでWebDAV

VistaでWebフォルダ(WebDAV)がマウントできなくて苦労していたけど、net useコマンドを使ってドライブレターでマウントできることが分かった。

なんてことない、C:\Users\hoge>net use z: https://www.hoge.com/hoge
'www.hoge.com' のユーザー名を入力してください: hoge
www.hoge.com のパスワードを入力してください: (パスワードを入力)
コマンドは正常に終了しました。
でできた。

「ネットワークの場所を追加する」で設定できないのは悔しいけど、マウントできちゃえば、実はかなり使える。

.jpgファイルはちゃんとダブルクリックすればWindows フォト ギャラリーが立ち上がるし、.exeなんかは(アクセス制御の警告が出るけど)ダブルクリックで実行できちゃう。XPよりも進歩しているのが分かる。

これでひと安心だけど、「ネットワークの場所を追加する」でつなげないのはいただけない。httpsだからかなぁ?

WebDAVの2GBの壁

どうやらWebDAVには2GBの壁があるらしい。というのも、サーバに2GBのファイルを置こうとしたらエラーがでて保存できなかった。これはWindowsXPのエクスプローラ経由の話。Windows2000でもだめ。

サーバ(Fedora Core 3)上でWebDAVで公開しているフォルダにコピーすると、コピー自体は成功するものの、今度はそのフォルダに対してアクセスしようとするとエラーがでて、アクセスすることができなくなってしまう。

いろいろと調べたら、どうやらApacheのWebDAV実装の問題で2GB以上のファイルは扱えないとのこと。もっと調べたら、解決策はあるみたいで、
64bit OS対応版Apacheならうまくいく、
Apache 2.2以上ならばうまくいく、
などの報告が上がっている。
スラッシュドットのこのスレッドが詳しいかな。

OSを64bit対応にするには64bit対応プラットフォームに乗り換えないといけないけど、そんなお金ないし。。。(T_T) かといってApache 2.2にあげるのはあまりにもリスクが大きいし。当面2GB以上のファイルは扱わない、とするのが一番無難みたい。

ファイアウォール越しのWebDAV

結論からすれば問題なくファイアウォールを通してWebDAV経由でファイル共有することはできた。会社(当然ながらファイアウォール設置)から自宅サーバのWebDAV共有ファイルにアクセスすることができた。

でも一番最初にアクセスするとき、会社のThinkPadで自宅にて作成した共有ディレクトリへのショートカットからうまく接続することができなかった。サーバが見つからないとか・・・

仕方ないから再度ネットワークプレースの追加ウィザードから接続を試してみたら今度はちゃんとアクセスすることができた。不思議なことに、最初にNGだったショートカットも問題なくつながるようになっている。WebDAVもそろそろ枯れてきたかなぁ〜、なんて思っていたけど、やはりもう少し熟成が必要らしい。

WebDAVサーバへの接続(Windows編)

WebDAVの導入でサーバにWebDAVを導入したので、Windowsからアクセスしてみる。厳密に言うとWindowsXPだね。

まずスタートマイネットワークをクリックする。
もしかすると初期状態ではスタートメニューマイ ネットワークが無いかもしれない。そういうときはスタートメニューマイコンピュータをクリックして、次に開いた画面の左側のその他の下のマイ ネットワークをクリックするとよい。
続きを読む WebDAVサーバへの接続(Windows編)

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:****** ← 再入力
と設定する。

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