我不是在询问挂载 SSHFS 挂载点,这是我发现的所有类似问题的主题。
我的挂载点 ( /path/to/sshfs/mount/
) 已正确挂载,我可以作为我的用户列出、读取、写入所有预期的文件。
我确实有权将脚本复制到本地目录。但是,因为该脚本需要几个包含库文件和资源的子目录,所以我更喜欢在它所在的位置执行该脚本,而不是在本地复制它。此外,无需将其复制到本地机器即可完成其预期工作。
不幸的是,对于 SSHFS 挂载,该脚本需要 root 权限才能进行许多操作,因为它必须将一些文件安装到系统目录并更新系统中存在的不同用户的文件。
这是我的错误:
$ cd /path/to/sshfs/mount/
$ sudo ./myscript.sh
sudo: unable to execute ./myscript.sh: Permission denied
以下是我执行的检查:
$ ls -la
-rwxr-x--- 1 myuser team 8173 Dec 15 06:33 myscript.sh
$ sudo -i
[sudo] password for myuser:
#
$ cat /etc/fstab
myuser@myserver:/path/to/sshfs/mount/ /path/to/sshfs/mount/ fuse.sshfs x-systemd.automount,_netdev,user,follow_symlinks,identityfile=/path/to/.ssh/key_file,allow_other,default_permissions 0 2
这表明所需的 fuse.conf 选项已启用:
$ cat /etc/fuse.conf
user_allow_other
什么 SSHFS 配置将允许我运行:
$ sudo /path/to/sshfs/mount/myscript.sh