
我正在使用 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
?
答案1
Bamboo 是用密鑰設定的,所以不需要實際的密碼(據我所知沒有),這意味著缺少 tty 輸入應該不重要,對吧?
不,這就是你感到困惑的地方。您如何透過 ssh 進行身份驗證與 sudo 無關。如果 sudo 配置為需要密碼,則必須輸入使用者的密碼。如果你不這樣做,那就不行。如果使用者沒有密碼,那麼它就不可能運作。
看來你應該重新配置 sudo 以便
- 它不需要 tty
- 它不需要密碼
例如,如果我想要一個名為竹子能夠在沒有密碼的情況下以任何用戶身份執行任何命令,在我的/etc/sudoers我可以擁有的文件
bamboo ALL=(ALL) NOPASSWD: ALL
答案2
答案3
檢查 /etc/sudoers 檔案是否配置正確。昨天,當我們的一個建置腳本覆蓋了我在 /etc/sudoers 檔案中所做的更改,導致權限問題時,我收到了此錯誤訊息。