ssh, ftp, samba ファイルシステムをマウント

GitHub - libfuse/libfuse: The reference implementation of the Linux FUSE (Filesystem in Userspace) interface を利用し、ssh, ftp, samba ファイルシステムをマウントするためのソフトウエア(下記)の使い方をまとめておきます。

マウントのために root 権限は要りません。一般ユーザでマウントできます。

Fedora 7 では yum install sshfs curlftpfs fuse-smb で全部使えるようになります。ただし、ユーザをグループ fuse に追加する必要があります。

sudo gpasswd -a user fuse

これは、/dev/fuse に書き込める必要があるためです。

$ ls -l /dev/fuse
crw-rw---- 1 root fuse 10, 229 2007-10-02 09:07 /dev/fuse

sshfs

ssh 接続できるホストであれば、下記のようにしてマウントできます。

sshfs user@sshsever: /path/to/mountpoint/

curlftpfs

ちょっと危険な方法としては、

curlftpfs ftp://user:passwd@ftpserver/ /path/to/mountpoint/

ただ、これではプロセスリストにパスワードが出てしまいます。curlftpfs のサイト にはプロセスリストにパスワードを表示させない方法が書かれています。簡単にまとめると、~/.netrc ファイルを作成し、下記のように ftp サーバ名、ログイン名、パスワードを書き込んで chmod 600 しておくと curlftpfs が ~/.netrc を読んでくれるというものです。

machine ftp.host.com  
login myuser  
password mypass

fuse-smb

まず、~/.smb/ を作成し、700 にします。

次に、~/.smb/fusesmb.conf をサンプルを見ながら作成します。Fedora 7 でパッケージでインストールした場合、/usr/share/doc/fuse-smb-0.8.5/fusesmb.conf.ex がサンプルです。下記の例では smb サーバ名を smberver と仮定し、認証で利用するユーザ名とパスワードを指定ています。すべての smb サーバで同じユーザ名とパスワードを利用する場合は global セクションに書けばよいです。

[global]
interval = 10
timeout = 10
showhiddenshares=true

[/smbserver]
username=user
password=pass

マウントします。smbmount のように samba 共有を指定してマウントするのではなく、Windows の[マイネットワーク]ショートカットを`作成'する感じです。

fusesmb /path/to/mountpoint/

/path/to/mountpoint/workgroup/smbserver/sharename/ でアクセスできます。

日本語ファイル名が文字化けする場合は ~/.smb/smb.conf で文字コードを指定します。Linux の Charset が EUC の場合、下記のようにすると文字化けを解消できます。

$ cat ~/.smb/smb.conf
[global]
    create mask = 0644
    directory mask = 0755
    dos charset = CP932
    unix charset = EUCJP-MS
    display charset = EUCJP-MS

アンマウント

共通です。

fusermount -u /path/to/mountpoint