Skip to main content

One post tagged with "linux"

View All Tags

linux非root用户摆脱输入密码

当使用ubuntu、fedora、manjaro等带桌面环境的linux发型版时,相信你一定为密码输入所烦恼。敲sudo命令要输入密码,按照软件要输入密码,挂载磁盘要输入密码。如果直接以root用户登录风险太大,很容易就把系统玩蹦了。这里介绍如果用普通用户,不输入密码搞定一切。

1. 关闭sudo密码输入#

在控制台输入(最后一次sudo需要密码)

sudo visudo /etc/sudoers

找到你的用户在群组的sudoer配置:

%wheel ALL=(ALL) : ALL

加上NOPASSWD:

%wheel ALL=(ALL) NOPASSWD: ALL

也有可能是使用的用户名配置:

username ALL=(ALL) : ALL

加上NOPASSWD:

username ALL=(ALL) NOPASSWD: ALL

如果你之前能使用sudo命令,则/etc/sudoers文件中一定有一条当前用户对应的配置,在上面加上NOPASSWD即可。

2. 在Polkit的权限控制中放行一切操作#

即使完成了sudo不用输入密码的配置,在安装软件、挂载磁盘时图像界面仍会弹出让你输入密码。这是因为系统使用了Polkit的权限控制能力。只需要对Polkit进行配置,就可以完全摆脱密码输入了。

在目录/etc/polkit-1/rules.d/下创建49-nopasswd_global.rules文件,内容如下:

/* Allow members of the wheel group to execute any actions
* without password authentication, similar to "sudo NOPASSWD:"
*/
polkit.addRule(function(action, subject) {
if (subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});

这里的wheel是你的用户所在的群组。

参考#

https://wiki.archlinux.org/title/Polkit#Bypass_password_prompt

https://wiki.archlinux.org/title/Sudo