在Linux发行版上设置无密码sudo


18

我最近同时设置了Fedora 28和Ubuntu 18.04系统,并希望同时在这两个系统上配置我的主要用户帐户,以便我可以在sudo不提示输入密码的情况下运行命令。

如何在各自的系统上执行此操作?

Answers:


28

如果您使用wheel在Fedora系统上调用的特殊Unix组,这将是微不足道的。您只需要执行以下操作:

  1. 将您的主要用户添加到wheel组中

    $ sudo gpasswd -a <primary account> wheel
    
  2. 在中为该%wheel组启用NOPASSWD/etc/sudoers

    $ sudo visudo
    

    然后注释掉这一行:

    ## Allows people in group wheel to run all commands
    # %wheel        ALL=(ALL)       ALL
    

    并取消注释此行:

    ## Same thing without a password
    %wheel  ALL=(ALL)       NOPASSWD: ALL
    

    使用Shift+ Z+ 保存该文件Z

  3. 注销并重新登录

    注意:这最后一步是强制性的,因此将重新执行您的桌面和任何相应的顶层Shell,以显示您的主帐户现在是wheelUnix组的成员。


如果wheel您不使用其他任何小组,将会发生什么变化?
Giacomo Alzetta

@GiacomoAlzetta %wheel转到该组。
Barmar

19

传统上,在基于Debian的发行版(例如Debian / Ubuntu / Mint / Kali / Antix)上,sudo的默认组是sudo

因此,要将sudo启用了无密码功能的用户添加到基于Debian的系统中,步骤如下:

  1. 安装 sudo

    在Debian中,根据安装选项的不同,sudo默认情况下您通常最终没有安装。

    如果sudo未安装该软件包(例如,您没有/etc/sudoers),请以root身份运行:

    # apt install sudo
    
  2. 将用户添加到sudo组

    如果用户不在sudo组中,则将其添加到sudo组中(Ubuntu和衍生产品会自动将在安装中创建的用户添加到sudo组中)。

    设置第一个sudo用户时,您必须先达到root

    # gpasswd -a <primary account> sudo
    

    如果您已经有一个sudo用户,建议作为良好的安全做法,通过该用户在sudo组中设置其他用户:

    $ sudo gpasswd -a <primary account> sudo
    
  3. 修改/etc/sudoers以添加NOPASSWD指令

    然后,使用以下命令编辑/etc/sudoerssudo组的默认行:

    $ sudo visudo
    

    并从以下更改:

    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL:ALL) ALL
    

    至:

    # Allow members of group sudo to execute any command, no password
    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  4. 注销并重新登录

    如果已登录系统,则目标用户必须注销并登录,以使属于该sudo组的用户的更改生效。

注意:在Debian中,该组wheel通常用于将PAM中的使用限制su为一个组,而不是sudo像基于RedHat / SuSE的发行版那样将其用于命令。

传统上,在基于Debian的发行版中,对于sudo命令,请使用sudo组。


7

大多数发行版中都有以下行/etc/sudoers/

#includedir /etc/sudoers.d

因此,添加一个用户的简单方法是在/etc/sudoers.d/目录中创建合适的文件。我通常为要添加的用户命名:

add_sudoer() {
    if ! test -n "$1"
    then echo "Usage: $0 <user>" >&2; return
    fi

    printf >"/etc/sudoers.d/$1" '%s    ALL= NOPASSWD: ALL\n' "$1"
}

您可能还想向文件添加Defaults:%s !lecture, !authenticate\n和/或其他选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.