天天看點

sudo:抱歉,您必須擁有一個終端來執行 sudo 解決辦法;ssh執行sudo指令的方法;給使用者增加sudo免密權限

1、supervisor使用sudo執行指令的時候,報錯

sudo:抱歉,您必須擁有一個終端來執行 sudo 解決辦法;ssh執行sudo指令的方法;給使用者增加sudo免密權限
sudo:抱歉,您必須擁有一個終端來執行 sudo 解決辦法;ssh執行sudo指令的方法;給使用者增加sudo免密權限

2、解決辦法:

編輯 /etc/sudoers 檔案,将Default requiretty注釋掉。

sudo vim /etc/sudoers

#Default requiretty #注釋掉 Default requiretty 一行

具體操作:

sudo sed -i ‘s/Defaults requiretty/#Defaults requiretty/g’ /etc/sudoers

sudo cat /etc/sudoers | grep requiretty

3、給ssh一個終端:加選項 -t

sshpass -p 123456 ssh -t [email protected]  sudo touch 123

允許wheel使用者組成員無密碼使用sudo:

%wheel      ALL=(ALL) NOPASSWD: ALL      

允許admin使用者無密碼使用sudo:

admin      ALL=(ALL) NOPASSWD: ALL      

SSH TTY 問題

遠端執行指令時,SSH預設不會配置設定tty。沒有tty,sudo就無法在擷取密碼時關閉回顯。使用

-tt

選項強制SSH配置設定tty(使用兩次

-tt

)。

另一方面,sudoers中的

Defaults

選項

requiretty

要求隻有擁有tty的使用者才能使用sudo。可以通過

visudo

編輯配置檔案,禁用這個選項:

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear text. 
# You have to run "ssh -t hostname sudo <cmd>".
#
# Defaults    requiretty      

參考:sudo的wiki手冊

https://wiki.archlinux.org/index.php/Sudo_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)