我最近设置了 Fedora 28 和 Ubuntu 18.04 系统,并希望在这两个系统上配置我的主用户帐户,以便我可以运行sudo
命令而不会提示输入密码。
我如何在各自的系统上执行此操作?
答案1
如果您使用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,显示您的主帐户现在是
wheel
Unix 组的成员。
答案2
传统上,在基于 Debian 的发行版(例如 Debian/Ubuntu/Mint/Kali/Antix)上,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 中su
对组的使用,而不是sudo
像基于 RedHat/SuSE 的发行版中那样将其用于命令。
传统上,在基于 Debian 的发行版中,sudo
您使用sudo
组来执行命令。
答案3
大多数发行版都有这一行/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
向文件添加和/或其他选项。
答案4
或者你也可以使用Python普多包裹。
安装:
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