zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    opencv计算机视觉学习笔记一
    opencv_python学习笔记十八
    opencv_python学习笔记十六
    Android-锁屏功能
    Android-加载透明PNG图片变黑的问题
    Android-AttributeSet详解
    Android-UGallery
    Android-相册效果(图片缩放 自由滑动)
    Android进阶篇-内存管理
    Android进阶篇-时间滑动控件
  • 原文地址:https://www.cnblogs.com/shengulong/p/6551363.html
Copyright © 2011-2022 走看看