为什么以下命令在bash中起作用,而不是在脚本中起作用

时间:2017-10-20 15:39:47

标签: bash ubuntu ubuntu-16.04

我遇到了这个非常奇怪的问题,我无法理解为什么会这样。当我从我的shell手动执行以下命令时,它可以工作。

sudo -u some-user echo "$SSH_KEY" | /home/some-user/.ssh/authorized_keys

然而,从bash脚本失败的消息我们没有任何权限。

#!/bin/bash
sudo -u some-user echo "$SSH_KEY" | /home/some-user/.ssh/authorized_keys

是否有任何bash选项可以配置,或者有人可以解释这种行为? 它看起来有点像非交互式终端或类似的bash安全性东西,但我失去了我的创造力谷歌的解决方案。

我正在运行Ubuntu 16.04。

1 个答案:

答案 0 :(得分:0)

经过数小时的调查后,似乎sudo命令没有被执行,因为密码提示不会从脚本中发生。

解决方案是在运行脚本之前首先运行sudo命令,或者只是将整个脚本作为sudo运行,这样您就可以输入一次密码,而其他sudo命令在没有密码提示的情况下运行。