CurlFtpFS

提供: ArchWiki
移動先: 案内検索
ノート: 2015年2月現在、curlftpfs は動作が極端に遅くなることがあるという報告があります。Ubuntu のバグレポートstackoverflow.com の質問 を参照。

CurlFtpFS は FUSE と libcurl によって FTP ホストにアクセスするファイルシステムです。

インストール

curlftpfs パッケージをインストールしてください。

必要であれば、fuse を起動してください:

# modprobe fuse

root で FTP フォルダをマウント

マウントポイントを作成して FTP フォルダをマウント:

# mkdir /mnt/ftp
# curlftpfs ftp.yourserver.com /mnt/ftp/ -o user=username:password

他のユーザーにアクセス権限を与えたい場合、allow_other オプションを使います:

# curlftpfs ftp.yourserver.com /mnt/ftp/ -o user=username:password,allow_other

カンマの後に空白を追加してはいけません。allow_other 引数が認識されなくなります。

アクティブモードで FTP を使いたい場合は 'ftp_port=-' オプションを追加します:

# curlftpfs ftp.yourserver.com /mnt/ftp/ -o user=username:password,allow_other,ftp_port=-

/etc/fstab に以下の行を追加すると自動でマウントすることができます:

curlftpfs#USER:PASSWORD@ftp.domain.org /mnt/mydomainorg fuse auto,user,uid=1000,allow_other,_netdev 0 0
ヒント: UTF-8 をサポートしていないサーバーで英語以外の文字列に問題が発生する場合は codepage="string" を使ってみてください (例: codepage="iso8859-1")。

プロセスリストにパスワードが表示されないようにするには、curlftpfs を動作させるユーザーのホームディレクトリに以下の内容の .netrc を作成して chmod 600 を実行してください:

machine ftp.yourserver.com
login username
password mypassword

通常ユーザーで FTP フォルダをマウント

通常ユーザーでマウントすることも可能です (.netrc ファイルと ssl 暗号化を常に使うようにしてください):

$ mkdir ~/my-server
$ curlftpfs -o ssl,utf8 ftp://my-server.tld/ ~/my-server

以下のように返ってくる場合:

Error connecting to ftp: QUOT command failed with 500

サーバーが utf8 オプションに対応していません。それ以外は問題ありません。

ヒント: 必要であれば -o codepage="iso8859-1" などとエンコーディングを設定してみてください。

アンマウントするには:

$ fusermount -u ~/my-server

暗号化サーバーに接続

デフォルト設定では CurlFtpFS は暗号化されていない接続ポートに接続するとき平文で認証します。リモートサーバーが暗号化されない認証方式を拒否するように設定していた場合、CurlFtpFS は以下のようにエラーを吐きます:

Error connecting to ftp: Access denied: 530

暗号化認証を使って ftp サーバーに接続するには、ssl あるいは tsl オプションを指定する必要があります:

# curlftpfs ftp.yourserver.com /mnt/ftp/ -o ssl,user=username:password

コンピュータが信頼していない自己署名証明書を使っているサーバーに接続する場合、無視するように指定します:

# curlftpfs ftp.yourserver.com /mnt/ftp/ -o ssl,no_verify_peer,no_verify_hostname,user=username:password

暗示的な tsl モードも使えます。詳しくはマニュアルページを見てください。