2017-10-20 65 views
-1

我遇到了这个非常奇怪的问题,它只是我不明白为什么它正在发生。当我手动执行下面的命令时,它会起作用。为什么下面的命令工作在Bash而不是从脚本

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。

+2

什么消息的*确切文字*从bash脚本运行时?你如何运行bash脚本?也许最重要的是,为什么'some-user'有一个可执行程序作为他们的授权密钥文件? –

+0

您必须已将错误的命令复制到问题中。也许你在复制到脚本时也犯了同样的错误。 – Barmar

+0

'authorized_keys'是一个数据文件,不是可以运行的命令,可以使用或不使用'sudo'。 – Barmar

回答

0

经过调查的时间似乎这里并不是因为它不从剧本出现密码提示的执行sudo的命令。

的解决方案是捉迷藏脚本或只是捉迷藏整个脚本sudo的,所以你可以输入密码一次,并在其他sudo的命令,没有密码提示运行前首先运行sudo命令。

相关问题