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


1、supervisor使用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 admin@8.8.8.8  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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM