我能够在没有密码的情况下与该远程服务器建立 ssh 连接。另外,如果我执行单行命令而不是 bash 脚本,它也可以正常工作。但如果我尝试通过 ssh 执行 bash 脚本,它会说
bash: /home/username/script.sh: Permission denied
我怎样才能解决这个问题?我可以通过 ssh 执行单行命令,没有任何问题。
答案1
如果您尝试运行此命令:
/home/username/LastBootupTime.sh
它具有以下权限:
-rwxr--r-- 1 root root 42 Nov 3 14:01 LastBootUpTime.sh
那就root
只能这么做了。其他人都会收到错误bash: /home/username/LastBootUpTime.sh: Permission denied
。
这是因为权限是这样的:
rwx
- 所有者(在本例中为 root)可以读/写/执行脚本r--
- 该组(在本例中为根组)可以读取但既不能写入也不能执行脚本r--
- 其他人可以读取但不能写入或执行脚本
现在,在您的情况下,您已经明确指定了此命令:
bash /home/user/LastBootupTime.sh
所以虽然你需要阅读许可不要需要执行权限。因此,错误消息还有另一个原因。用户很可能无法访问其中一个目录。
也许你真正的命令是这样的:
bash /root/LastBootupTime.sh
在这种情况下,只有root
用户可以访问该/root
目录,因此其他人都会收到权限被拒绝的错误。解决方案是将脚本放入适当的可访问目录中(我/usr/local/bin
在我的系统上使用;其他人更喜欢/opt/bin
,但您可以将其放置在适合您的任何地方)。