收到权限被拒绝错误

收到权限被拒绝错误

我编写了一个 bash 脚本并且它在后台运行,在这个脚本中我使用了以下命令:

sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /update.out 2> /update.err < /dev/null | echo $! > /update.pid &'

它工作正常。但我想更改的位置/update.out/update.err因此/update.pid 修改了命令:

sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /pra/log/update.out 2> /pra/log/update.err < /dev/null | echo $! > /pra/log/update.pid &'

现在我收到了权限被拒绝错误。

因为我更改了输出文件的路径。我不确定,但我认为我必须授予超级用户权限,例如susudo之前sshpass

那么我如何从上述命令更改/update.out和此文件/update.err的路径/update.pid

答案1

在第一个命令中,您将输出写入到您具有写访问权限的位置,因此一切都很好。

现在该/pra目录默认不存在,因此我假设您已使用 root 访问权限创建了它。因此,要写入它,您也必须使用 root 访问权限。只需sudo在命令中添加以下内容:

sudo sshpass -p prakash123 ssh -t -p $1 prakash@localhost './update_script.sh > /pra/log/update.out 2> /pra/log/update.err < /dev/null | echo $! > /pra/log/update.pid &'

但是,我建议您写入$HOMEdir 中的目录并授予其rwx------权限(即,您具有读/写/执行权限,而其他人则无权限),而不是这样做。这样您就不必使用sudo.

相关内容