2011年5月20日金曜日

DropDAV がバージョンアップ

DropDAV」がバージョンアップして「2.0」となった。このバージョンアップでの肝は、国際対応、つまり、UTF-8 をきちんと対応したという事だ。
したがって、以前、Linux で「davfs2」 を使って、DropDAV をマウントしてみたが、日本語のファイルが一切表示されなかった(→ 「デュークのブログ: DropDAV」)。
しかし、今回、DropDAV をマウントしてみると、日本語のファイルがちゃんと表示されるし、もちろん、読み書きも問題無い!。
また、「WebDAV Client CarotDAV」などの、クライアントでも、日本語のファイルは一覧に表示されても、書き込みが出来無かったのが、やはり、今回は日本語のファイルでも書き込みできる。

しか~~~~~~し!、今回のバージョンアップから、「フリーミアム」モデルを止め、全員有料となる。料金は、月額 5$ である。とすると、一年で 60$ か…。良く使うのなら、まあまあの値段かな。

ところで、Dropbox をマウントするには、「dropfuse」というのもある。これは Dropbox の Wiki で紹介されていたのだが、NetWalker では動作しなかった。
dropfuse」が使用している「fusepy」での FUSE Python の要求バージョンは大丈夫なのだが、「Linux (i386, x86_64, PPC)」とい記述がちょっと気になる。Netwalker は「ARM」だからなぁ…。でも、Python なら関係無いように思うのだが、何かあるのかな。
あと、「dropfuse」は、Dropbox のファイルを何でもマウントできるのではなく、マウントしたいディレクトリ/ファイルの共有リンクを入手して、それをマウントする事となる。共有リンクは、Dropbox のWEBインターフェイスで簡単に入手できる。

何れにせよ、 dropfuse は動作しないので、日本語ファイルもOKかどうかは判らない。したがって、日本語ファイルもOKなのは、少なくとも、Netwalker では DropDAV を使う事となる。
 本当は、Dropbox が WebDAV をサポートしてくれれば問題無いのだが…。Dropbox の要求箱「vote box - WebDAV support」にも多くのリクエストがきてるのだが。Dropbox がサポートするなら、有料でも使いたいな。

2011年5月18日水曜日

Yahoo! JAPANで不正ログイン

 という記事があったので、早速、Yahoo! Japan のログイン履歴を確認してみたら、「amazonaws.com」ドメインからのアクセスがあった。IPアドレスは海外だし(一つはシンガポール…)、なにより、認証結果が「成功」となっていることろが怖いところだ。


日付は1月だし、もちろん、海外にも行っていない。
今のところ、これといって変なところはないし、元々、Yahooメールは、スパムばかりになってしまったので、最近は全然利用していなかった。もしかしたら、このアカウントでスパムメールなどの踏み台にしていたのかも…。
早速、パスワードを変更した。

2011年5月11日水曜日

emacs TRAMP で、リモート・サーバを sudo で接続する

emacs の 「TRAMP」は大変便利なので、かなり以前から使っていたが、バージョンが「2.1」になってから、多段接続するためのメソッド「multi」が廃止となってしまった。
やりたい事は、
ローカルマシン -> ssh -> リモートサーバ -> sudo
ということで、TRAMPの「2.0」では、以下のようにすればよかった。
/multi:ssh:foo@remote:sudo:root@localhost:/...
これは、例えば、リモートサーバ側に emacs がインストールされておらず、かつ、root で作業したい場合、とても便利だった。

そこで、TRAMPのマニュアル「5.9 Connecting to a remote host using multiple hops」や、色々検索して調べてみたところ、
tramp-default-proxies-alist
に多段接続する条件を追加するらしい。設定方法は、 
(add-to-list 'tramp-default-proxies-alist
                  '("ホスト" "ユーザ" "接続方法")) 
「ホスト」、「ユーザ」には正規表現が使用でき、「nil」を指定すれば、すべての場合にマッチする。
つまり、「/メソッド:ユーザ@ホスト]とした場合、「接続方法」で記述した方法で一旦接続した後に、指定された方法で接続を行なう。
例えば、
(add-to-list 'tramp-default-proxies-alist
                  '("host2" "foo" "/ssh:foo@host1"))
とした場合、
/ssh:foo@host2:/...
に接続すれば、
ローカルマシン -> ssh -> foo@host1 -> ssh -> foo@host2
という経路で接続できる。これば、「host2」へ直接接続できない場合などで有効だが、これならば、ssh の設定でもできる。
  • ~foo/.ssh/config
Host host2
  ProxyCommand ssh foo@host1 nc %h %p
これで、「ssh host2」とすれば、
ローカルマシン -> ssh -> foo@host1 -> nc -> foo@host2
となる。この場合、踏み台にする「host1」から「host2」への接続に「nc」コマンドを使うので負荷も少ない。
ただし、「host1」への接続が、ユーザ「foo」でない場合は、この方法は使いずらい。「host1」から「host2」へは同じユーザで接続するからである。(「nc」を sudo で別ユーザで起動すればできるのかなぁ?)
とにかく、TRAMP では、リモートサーバで sudo (主に root)で作業する事に専念する事とした。したがって、
  • ~/.emacs 
(add-to-list 'tramp-default-proxies-alist
             '(nil "\\`root\\'" "/ssh:%h:"))
(add-to-list 'tramp-default-proxies-alist
             '("localhost" nil nil))
(add-to-list 'tramp-default-proxies-alist
             '((regexp-quote (system-name)) nil nil))
という設定を行なった。
最初の設定は、とにかく、ユーザが「root」なら、まず、ssh で指定ホスト(「%h」で置き換わる)に接続する。
2番目の設定は、ホスト名が「localhost」なら何もしない。
さらに、3番目の設定は、ホスト名がローカルマシンのホスト名なら、やはり、何もしない。
したがって、
/sudo:host1:/...
ならば、
ローカルマシン -> ssh -> host1 -> sudo
 と接続できる。「/sudo」メソッドでユーザ名を省略すると「root」が想定される。
また、
/sudo:localhost:/...
/sudo:myhost@mydomain.co.jp:/..
などとすれば、ローカルマシンで「sudo」が実行される。ちなみに「/sudo::/...」と、ユーザ名、ホスト名共に省略すると、「root@自ホスト名.自ドメイン名」が想定されるので、3番目の設定が、これに対応したものでもある。
ただし、3番目の設定は、emacs のバージョンが「21」ではエラーとなってしまうので注意が必要である。
まあ、横着せずに、ローカルマシンでも、リモートサーバでも、ホスト名はしっかり記述すれば良いのであるが…。