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

slm*_*slm 19 linux password sudo

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

我怎样才能在各自的系统上做到这一点?

slm*_*slm 28

如果您使用wheel在 Fedora 系统上调用的特殊 Unix 组,这将非常简单。您只需执行以下操作:

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

    $ sudo gpasswd -a <primary account> wheel
    
    Run Code Online (Sandbox Code Playgroud)
  2. %wheel组启用 NOPASSWD/etc/sudoers

    $ sudo visudo
    
    Run Code Online (Sandbox Code Playgroud)

    然后注释掉这一行:

    ## Allows people in group wheel to run all commands
    # %wheel        ALL=(ALL)       ALL
    
    Run Code Online (Sandbox Code Playgroud)

    并取消注释这一行:

    ## Same thing without a password
    %wheel  ALL=(ALL)       NOPASSWD: ALL
    
    Run Code Online (Sandbox Code Playgroud)

    该文件保存为Shift+ Z+ Z

  3. 注销并重新登录

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


Rui*_*iro 22

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

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

  1. 安装 sudo

    在 Debian 中,根据安装选项的不同,您通常会sudo默认没有安装。

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

    # apt install sudo
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将用户添加到 sudo 组

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

    设置第一个 sudo 用户时,您必须将第一个用户设置为root

    # gpasswd -a <primary account> sudo
    
    Run Code Online (Sandbox Code Playgroud)

    当您已经有一个sudo用户时,建议作为良好的安全实践,通过该用户设置 sudo 组中的其他用户:

    $ sudo gpasswd -a <primary account> sudo
    
    Run Code Online (Sandbox Code Playgroud)
  3. 修改/etc/sudoers添加 NOPASSWD 指令

    然后就可以编辑在默认的行/etc/sudoerssudo组:

    $ sudo visudo
    
    Run Code Online (Sandbox Code Playgroud)

    并将其更改为:

    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL:ALL) ALL
    
    Run Code Online (Sandbox Code Playgroud)

    到:

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

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

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

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


Tob*_*ght 7

大多数发行版在/etc/sudoers/以下方面都有这一行:

#includedir /etc/sudoers.d
Run Code Online (Sandbox Code Playgroud)

因此,添加一个用户的一种简单方法是在/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"
}
Run Code Online (Sandbox Code Playgroud)

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