CurlFtpFS
CurlFtpFS は FUSE と libcurl によって FTP ホストにアクセスするファイルシステムです。
目次
インストール
必要であれば、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
プロセスリストにパスワードが表示されないようにするには、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
オプションに対応していません。それ以外は問題ありません。
アンマウントするには:
$ 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 モードも使えます。詳しくはマニュアルページ curlftpfs(1) を見てください。
トラブルシューティング
ファイル名に '#' が含まれたファイルにアクセスできない
Launchpad bug 783003 として報告されていますが、2020年時点では動きがありません。上流のバグ報告には非公式なパッチが紹介されています。