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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值