SSHFS 経由でリモート ファイルシステムをマウントし、ツリー ビューで表示しようとする Atom パッケージを作成しています。マウントを成功させるのに問題があります。具体的には、ターミナルで次のように入力すると、ユーザー「wagoodman」として次のように入力します。
sshfs -o IdentityFile=/home/wagoodman/.ssh/id_rsa -o cache=yes -o StrictHostKeyChecking=no wagoodman@localhost:/tmp /home/wagoodman/.atom/mounts/localhost/tmp
これはうまくいきます!つまり、ssh 経由でローカルホストから /tmp ディレクトリを /home/wagoodman/.atom/mounts/localhost/tmp に問題なくマウントできます。
ただし、Atom パッケージ (コーヒー スクリプト) 内で同じタスクを実行しようとすると、エラーが発生して失敗しfusermount: mount failed: Operation not permitted
ます。アトムが同じユーザー (wagoodman) で実行されていることを確認しました。これは、システム上の sshfs バイナリに対して child_process.exec を呼び出すことによって行われます (必要なパラメーターを使用)。
興味深いことに注意してください。同じことを行うコマンドライン経由で呼び出される小さな coffescript を作成すると (child_process.exec を sshfs に呼び出します)、スクリプトは正常に動作します。これはかなり当惑します。
ここに表示されている問題を再現するために、小さな Atom パッケージでレポを作成しました: https://github.com/wagoodman/fusermount-issue
Dev モードでパッケージを atom に追加し、Ctrl+Alt+O を押して問題を確認します。実行coffee test.coffee
して動作を確認します。
test.coffee
注:環境内およびlib/fusermount-issue.coffee
環境(ユーザー、マウントポイントなど)のパラメーターを微調整する必要があります。