权限被拒绝从<文件读取,即使使用sudo也是如此

时间:2018-01-07 02:29:43

标签: bash permissions sudo

我需要从服务器B中的服务器A运行脚本。在ssh进入服务器B之后,我运行了以下命令:

sudo ssh root@ip_A 'bash -s' < root/work/task.sh

我收到以下错误:

-bash: /root/work/task.sh: Permission denied. 

在服务器A上,我完成了sudo chmod 777 task.sh

请谢谢。

2 个答案:

答案 0 :(得分:3)

即使没有连接多个文件,这也是cat增加价值的少数几个地方之一:

sudo cat /root/work/task.sh | ssh root@ip_A 'bash -s'

因为在启动调用的程序之前shell会运行<等重定向,所以sudo无法更改用于此类重定向的权限(它尚未启动!)。相比之下,sudo cat somefile首先运行sudo,然后然后 cat然后会打开somefile;由于sudo在这种情况下首先运行,因此可以使用升级的权限。

答案 1 :(得分:0)

我测试案例1:

sudo ssh root@ip_A 'bash -s < /root/work/task.sh'

哪个task.sh保存在ip_A中,并且有效 和测试用例2:

sudo ssh root@ip_A 'bash -s' < /root/work/task.sh

并且它也有效,ip_A中没有task.sh,只有本地主机中的此文件。

不知道你的问题,你可以告诉我们你的tash.sh吗?