在我的系统(Ubuntu 20.04)上,我已经安装了这Gnome Shell 扩展修改了关机选项的样式,还添加了休眠选项,我偶尔会在我的系统上使用它来代替挂起。虽然扩展按预期工作,但每次我想休眠时,系统都会提示我输入超级用户密码才能继续,这很烦人。为了摆脱密码对话框,我按照这回答并补充
my_username ALL=(ALL:ALL) NOPASSWD:/bin/systemctl hibernate
到我的 sudoers。经过此更改后,我能够从命令行休眠而无需密码,正如预期的那样。但是,所述 Gnome Shell 扩展中的相应选项仍然提示我输入密码。扩展的幕后代码可以找到这里。我找不到该函数的任何实现Util.trySpawnCommandLine
,但它似乎只会在 shell 中调用补充命令。因此,我不清楚为什么仍然要求我输入密码。我检查了返回which systemctl
。/bin/systemctl
可能是 Gnome Shell 中的命令是在与登录用户不同的用户上下文中执行的?
PS:无论如何,从安全角度来看,将上述行添加到 sudoers 文件是否被认为是安全的?