MacFUSE を使ってみる

Mac用FUSE とかを見て激しく便利そうな感じがしたので、使ってみます。FUSE 自体はかなり前からあるんですね。知らんかったー。

上の記事では MacFUSE のページにあるバイナリを使っているのですが、MacPorts にもあるようなので、そっちでやってみます。

ちなみに僕は zsh で G を alias -g G='| grep'、l を alias l='ls -lF' としています。あと setopt AUTO_CD もしているので、適当に読み替えてください。

CODE:
  1. [ihara@barcelona.local:~] $ port list G fuse
  2. libconfuse                     @2.5            devel/libconfuse
  3. curlftpfs                      @0.9.1          fuse/curlftpfs
  4. encfs                          @1.3.2          fuse/encfs
  5. fuse-bindings-python           @0.2            fuse/fuse-bindings-python
  6. fusefs                         @0.4.0          fuse/fusefs
  7. libfuse                        @2.6.5          fuse/libfuse
  8. ntfs-3g                        @1.616          fuse/ntfs-3g
  9. procfs                         @1.5            fuse/procfs
  10. spotlightfs                    @0.1.0          fuse/spotlightfs
  11. sshfs                          @1.7            fuse/sshfs
  12. sshfs-gui                      @0.3.0          fuse/sshfs-gui
  13. zope-cmfusertracktool          @1.1            zope/zope-cmfusertracktool
  14. [ihara@barcelona.local:~] $ port info fusefs
  15. [ihara@barcelona.local:~] $ port install -dv sshfs

として、sshfs を入れてみます。

MacFUSE の Wiki

CODE:
  1. # Mounting the SSH file system
  2. $ mkdir /some/mount/point # or use one that already exists
  3. $ sshfs user@host:/some/directory /some/mount/point -oreconnect,volname=<volname>

とあるので、そんな感じでやってみます。<volname> はデスクトップや Finder に見えるマウント名みたいなので、以下な感じ。サーバ malaga の自分のホームディレクトリをマウントします。

CODE:
  1. [ihara@barcelona.local:~] $ mkdir -p mnt/malaga
  2. [ihara@barcelona.local:~] $ sshfs ihara@malaga:/home/www/html mnt/malaga -oreconnect,volname=malaga
  3. ihara@malaga's password:
  4. kextload: /System/Library/Filesystems/fusefs.fs/Support/fusefs.kext loaded successfully
  5. [ihara@barcelona.local:~] $ l mnt/malaga
  6. total 552
  7. drwxr-xr-x   1 33  33   4096  7 16 17:15 fb/
  8. -rw-r--r--   1 33  33     94  6 22 20:10 index.php
  9. -rw-r--r--   1 33  33  30754  6 22 20:10 license.txt
  10. -rw-r--r--   1 33  33  10730  6 22 20:10 readme.html
  11. -rw-r--r--   1 33  33   7795  8  4 11:49 sitemap.xml
  12. ...(省略)

とマウントできとります。デスクトップにも malaga ってアイコン出てて、開くと中身がちゃんとある。おお。

編集やってみます。

CODE:
  1. [ihara@barcelona.local:~] $ ./mnt/malaga
  2. [ihara@barcelona.local:~/mnt/malaga] $ sudo touch hoge.txt
  3. touch: hoge.txt: Operation not permitted

malaga:/home/www/html に書き込み権限がないので怒られました。当たり前ですが、ssh でログインしたユーザで操作が行われるっつう話です。/home/www 以下はそこだけ操作できる特別なグループとユーザを作って権限を与えているので、そのグループ以下にユーザ ihara を入れてみたところ、サーバに直接ログインして touch hoge.txt 等はできるものの、sshfs でマウントしてやってみるとダメ。グループは見てないのかな。

つうわけで、ihara で書き込める /home/ihara をマウントしてみるとなんてこともなく編集できました。

ファイルの編集くらいだと、手元の Emacs の設定でやれていいんじゃんくらいな感じもしますが、Gmail とか Flickr のファイルシステムモジュールがあるとのことなので、見てみようと思います。あと、各言語用にインタフェースが用意されているみたいなので、この辺読んで 1 つ作ってみたいですね。Del.icio.us をマウントできる deliciousfs ってのが python の実装であるみたいですが、C++ でやってみますかね。お手軽じゃないけど。Y! ニュースのトピックスの API 使ってマウントしたりするのを PHP くらいで作るのが早いんだろうなあ。


About this entry