slm Asked: 2018-09-12 17:39:25 +0800 CST2018-09-12 17:39:25 +0800 CST 2018-09-12 17:39:25 +0800 CST 在 Linux 发行版上设置无密码 sudo 772 我最近设置了 Fedora 28 和 Ubuntu 18.04 系统,并希望在这两个系统上配置我的主用户帐户,以便我可以在sudo不提示输入密码的情况下运行命令。 我怎样才能在各自的系统上做到这一点? linux sudo 4 个回答 Voted Best Answer slm 2018-09-12T17:39:25+08:002018-09-12T17:39:25+08:00 wheel如果您使用在 Fedora 系统上调用的特殊 Unix 组,这非常简单。您只需执行以下操作: 将您的主要用户添加到wheel组 $ sudo gpasswd -a <primary account> wheel %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。 注销并重新登录 注意:最后一步是强制性的,以便重新执行您的桌面和任何相应的顶级 shell,表明您的主帐户现在是wheelUnix 组的成员。 Rui F Ribeiro 2018-09-12T19:17:08+08:002018-09-12T19:17:08+08:00 传统上,在 Debian/Ubuntu/Mint/Kali/Antix 等基于 Debian 的发行版上,sudo 的默认组是sudo. 因此,要将启用无密码sudo的用户添加到基于 Debian 的系统中,步骤如下: 安装sudo 在 Debian 中,根据安装选项的不同,您通常会sudo默认没有安装。 如果sudo未安装软件包(例如,您没有/etc/sudoers),请以 root 身份运行: # apt install sudo 将用户添加到 sudo 组 如果用户尚未在 sudo 组中,则将其添加到 sudo 组(Ubuntu 和衍生产品会自动将安装时创建的用户添加到 sudo 组)。 设置第一个 sudo 用户时,您必须先设置为root: # gpasswd -a <primary account> sudo 当您已经有一个sudo用户时,建议作为良好的安全实践,通过该用户设置 sudo 组中的其他用户: $ sudo gpasswd -a <primary account> sudo 修改/etc/sudoers以添加 NOPASSWD 指令 /etc/sudoers然后,您使用以下命令编辑组的默认行sudo: $ 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 注销并重新登录 如果已登录系统,则目标用户必须注销并登录才能使属于该sudo组的用户的更改生效。 注意:在 Debian 中,组wheel通常用于在 PAM 中限制对组的使用,而不是像在基于 RedHat/SuSE 的发行版中那样su将其用于命令。sudo 传统上,在基于 Debian 的发行版中,对于sudo您使用sudo组的命令。 Toby Speight 2018-09-12T23:40:53+08:002018-09-12T23:40:53+08:00 大多数发行版都有这一行/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在文件中添加和/或其他选项。 Madhusudhan Kasula 2020-02-15T06:58:46+08:002020-02-15T06:58:46+08:00 或者,您可以使用 Python pudo包。 安装: user$ sudo -H pip3 install pudo # you can install using pip2 also 以下是在 python 自动化中使用以在 root 权限下运行命令的代码片段: user$ python3 # or python2 >>> import pudo >>> (ret, out) = pudo.run(('ls', '/root')) # or pudo.run('ls /root') >>> print(ret) >>> 0 >>> print(out) >>> b'Desktop\nDownloads\nPictures\nMusic\n' 下面是在root权限下运行命令的cmd示例 user$ pudo ls /root Desktop Downloads Pictures Music
wheel
如果您使用在 Fedora 系统上调用的特殊 Unix 组,这非常简单。您只需执行以下操作:将您的主要用户添加到
wheel
组%wheel
为组启用 NOPASSWD/etc/sudoers
然后注释掉这一行:
并取消注释这一行:
Shift用+ Z+保存这个文件Z。
注销并重新登录
注意:最后一步是强制性的,以便重新执行您的桌面和任何相应的顶级 shell,表明您的主帐户现在是
wheel
Unix 组的成员。传统上,在 Debian/Ubuntu/Mint/Kali/Antix 等基于 Debian 的发行版上,sudo 的默认组是
sudo
.因此,要将启用无密码
sudo
的用户添加到基于 Debian 的系统中,步骤如下:安装
sudo
在 Debian 中,根据安装选项的不同,您通常会
sudo
默认没有安装。如果
sudo
未安装软件包(例如,您没有/etc/sudoers
),请以 root 身份运行:将用户添加到 sudo 组
如果用户尚未在 sudo 组中,则将其添加到 sudo 组(Ubuntu 和衍生产品会自动将安装时创建的用户添加到 sudo 组)。
设置第一个 sudo 用户时,您必须先设置为
root
:当您已经有一个
sudo
用户时,建议作为良好的安全实践,通过该用户设置 sudo 组中的其他用户:修改
/etc/sudoers
以添加 NOPASSWD 指令/etc/sudoers
然后,您使用以下命令编辑组的默认行sudo
:并将其更改为:
至:
注销并重新登录
如果已登录系统,则目标用户必须注销并登录才能使属于该
sudo
组的用户的更改生效。注意:在 Debian 中,组
wheel
通常用于在 PAM 中限制对组的使用,而不是像在基于 RedHat/SuSE 的发行版中那样su
将其用于命令。sudo
传统上,在基于 Debian 的发行版中,对于
sudo
您使用sudo
组的命令。大多数发行版都有这一行
/etc/sudoers/
:因此,添加一个用户的简单方法是在
/etc/sudoers.d/
目录中创建一个合适的文件;我通常将其命名为要添加的用户:您可能还想
Defaults:%s !lecture, !authenticate\n
在文件中添加和/或其他选项。或者,您可以使用 Python pudo包。
安装:
以下是在 python 自动化中使用以在 root 权限下运行命令的代码片段:
下面是在root权限下运行命令的cmd示例