我遇到了这个非常奇怪的问题,我无法理解为什么会这样。当我从我的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。
答案 0 :(得分:0)
经过数小时的调查后,似乎sudo命令没有被执行,因为密码提示不会从脚本中发生。
解决方案是在运行脚本之前首先运行sudo命令,或者只是将整个脚本作为sudo运行,这样您就可以输入一次密码,而其他sudo命令在没有密码提示的情况下运行。