sudo:抱歉,您必须拥有一个终端来执行 sudo 解决办法
Posted 沧海一粟,何以久远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
以上是关于sudo:抱歉,您必须拥有一个终端来执行 sudo 解决办法的主要内容,如果未能解决你的问题,请参考以下文章
sudo:抱歉,您必须拥有一个终端来执行 sudo 解决办法
/usr/bin/sudo 必须由 uid 0 拥有并具有 setuid 位设置版本 .ubantu14.04 LTS