3

我正在编写一个 Atom 包,它尝试通过 SSHFS 挂载远程文件系统并在树视图中显示它。我在让安装成功时遇到问题。具体来说,如果我在终端输入以下内容,则作为用户“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 从我的 localhost 挂载 /tmp 目录到 /home/wagoodman/.atom/mounts/localhost/tmp 没有问题。

但是,如果我在 Atom 包(咖啡脚本)中尝试相同的任务,那么它会失败并显示fusermount: mount failed: Operation not permitted. 我已经检查过 atom 在同一个用户(wagoodman)下运行。这是通过调用 child_process.exec 到系统上的 sshfs 二进制文件来完成的(带有必要的参数)。

需要注意的一些有趣的事情:如果我编写一个通过命令行调用的小型 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

4

0 回答 0