2007年6月15日金曜日

ftpの接続方法 curlftpfs編

前回に引き続き、今度はcurlftpfsを使ってFTPをファイルシステムとしてマウントする方法。curlftpfsはFUSEを使ったFTPFS。
fuseはユーザースペースでファイルシステムを作れるようにするもの。ユーザーが気軽にファイルシステムを作れちゃう。有名所ではGmilFSがそう。Gmailをファイルシステムとして扱える。わざわざウェブブラウザを立ち上げて自分宛にメールを作成して保存したいファイルを添付して、なんて回りくどいことをしなくても、適当なディレクトリをGmailFSとしてマウントし、そのディレクトリにファイルをコピーするなりすればいい。普通のファイルシステムとして使えちゃう。他にもNTFSを書き込み可能でマウントできちゃうNTFF-3gとかアップルの次期OSでサポートが表明されたZFSなどが有名。
そんなFUSEを使ってFTPをファイルシステムとして扱うように作られたのがcurlftpfs.


インストール

sudo apt-get install curlftpfs fuse-utils

このままだとうまく動かないのでパーミッションを設定。
sudo chmod 4755 /usr/bin/fusermount
sudo chmod o+rw /dev/fuse

マウント方法

curlftpfs -o user=ユーザ名:パスワード ftp://アドレス/ マウントポイント

アンマウント

fusermount -u マウントポイント
または、
umount マウントポイント

fstabに記述する

例.
curlftpfs#ftp.host.com /mnt/host fuse rw,uid=500,user,noauto 0 0

GUIっぽく使う



参考

2 件のコメント:

匿名 さんのコメント...

dpkg で管理されているファイルを直接 chmod するのは良くないんじゃないでしょうか?
fuse-utils には dpkg-statoverride を使えとあります。
また chmod させるよりは fuse の利用を許可するユーザーを fuse グループに参加させる方が良いと思います。

ayukawa さんのコメント...

コメントありがとうございます。
一応公式のFUSEWiKiにあるやり方に乗っとってみました。
今みると、/usr/bin/fusermountから/binにコマンドが移動していたり、最初から
-rwsr-xr-x 1 root root 20K 2007-09-19 09:01 /bin/fusermount
な状態になっていますので、記事を書いた時の状況とはだいぶ違ってきているのかもしれませんね。
現在curlftpfsを使っていないので、どちらがより良い方法なのか私にはわかりません。