Linux

EC2 自動實例 Sudo 不工作

  • January 14, 2014

我正在使用 Atlassian Bamboo 來設置建構伺服器。它允許使用“彈性圖像”,我可以指定使用哪個 AMI(我使用的是 Amazon Linux/CentOS 圖像)。它還允許您添加腳本以基本上“配置”伺服器。當我在我的腳本中執行建構sudo時,我收到如下錯誤:

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified

不使用sudo時,我收到權限被拒絕錯誤。

我試圖執行的腳本很簡單:

sudo yum install -y php-mysql
sudo yum install -y php-pdo
sudo yum install -y php-pecl-xdebug
sudo yum update

Bamboo 是使用密鑰設置的,因此不需要實際密碼(據我所知沒有密碼),這意味著缺少 tty 輸入應該無關緊要,對吧?

如果伺服器不斷啟動,我可以通過 SSH 進入它並弄清楚如何啟用 sudo 權限,但它不是……它被創建,建構執行,然後它終止。

TL;博士; 什麼會導致動態啟動的 EBS 支持的 AMI 不允許sudo

Bamboo 是使用密鑰設置的,因此不需要實際密碼(據我所知沒有密碼),這意味著缺少 tty 輸入應該無關緊要,對吧?

不,這是你感到困惑的地方。您如何通過 ssh 進行身份驗證與 sudo 無關。如果 sudo 配置為需要密碼,那麼您必須輸入使用者的密碼。如果你不這樣做,它就行不通。如果使用者沒有密碼,那麼它就不可能工作。

看來您應該重新配置 sudo 以便

  • 它不需要 tty
  • 它不需要密碼

例如,如果我希望一個名為竹子的使用者能夠在沒有密碼的情況下像任何使用者一樣執行任何命令,那麼在我的*/etc/sudoers*文件中我可以

bamboo  ALL=(ALL)   NOPASSWD: ALL

引用自:https://serverfault.com/questions/567137