管理系统服务或单元需要身份验证。


19

每当尝试以普通用户身份停止/启动守护程序时,我都会遇到一个奇怪的问题,它要求使用另一个普通用户的凭据进行身份验证-例如:

[bob@server ~]$ systemctl stop some-daemon.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: alice
Password: 

为什么在bob登录时要求alice进行身份验证,我该如何解决?


服务配置文件是什么样的?
珍妮D说恢复莫妮卡的时间

@JennyD:配置文件的位置在哪里?
Jack O'Leary

你想要什么?您要为每个用户启动自己的复制服务吗?例如,为爱丽丝启动自己的VNC守护程序,为鲍勃启动自己的VNC守护程序?
亚历山大·托尔卡切夫

@AlexanderT:每个用户都需要拥有自己的vncserver,这就是它的设计方式,是的-或多或少。鲍勃虽然没有运行vnc服务器,但运行的是无关的东西,但是当他尝试启动它时,systemctl要求输入爱丽丝的密码...(耸耸肩)。
杰克·奥利里

@ JackO'Leary,你可以尝试使用systemd --user,因为它在这篇文章中描述。否则,您可以为每个用户提供sudo所需的服务。
亚历山大·托尔卡切夫

Answers:


8

您的系统正在使用polkit授权管理器,并且消息来自文件/usr/share/polkit-1/actions/org.freedesktop.systemd1.policypolkit可以在/etc/polkit-1/usr/share/polkit-1目录中进行配置,更具体地说,可以在rules.dactions子目录中进行配置。有关更多信息,请参见Polkit手册页


在文档中:“ polkit允许用户通过认证管理用户或客户端所属会话的所有者来获得临时授权。” 也许这可以为为什么它要求输入爱丽丝的密码提供一个线索。
约翰·迈伦(JohanMyréen)'17

我认为您正在这里,尽管我仍然完全迷失在哪里删除规则或其他不断要求进行身份验证的用户的规则。我查看了这两个目录,甚至为“ alice”做了一个grep,但没有返回任何内容。
杰克·奥利里

您之前说过,您su - alice在启动vnc守护程序之前做了一个操作。我猜这使alice成为“客户端所属会话的所有者”。
JohanMyréen17年

没什么意义的是,它仅针对一项服务完成,然后停止并导致用户注销。bob的其他服务与alice无关,因为它是完全不同的-这很奇怪...如果这是正常行为,我不会介意完全禁用polkit。
杰克·奥利里

您可以使用该loginctl命令找出谁是会话的所有者。这可以证实或反驳我的理论,即polkit正在要求会话的所有者进行身份验证。我真的不能说为什么在这种情况下爱丽丝是所有者。
约翰·迈雷恩(JohanMyréen)

4

在管理系统服务时,您需要以root用户而不是普通用户的身份进行操作。$Shell提示符末尾用字符表示。

您可以使用sudo command或切换到root(root shell通常由#char 指示)。


即使我以root用户身份进行操作,它也会要求普通用户进行身份验证。基本上,root用户这样做了su - alice,然后systemctl启动了他们的vnc守护程序,但是现在systemctl无论它是什么,它都要求进行身份验证……
Jack O'Leary

键入“ /etc/init.d/munge start”时收到错误消息。添加sudo修复了它。谢谢!
fchen

0

检查/ etc / groups和sudoers规则。如果有人将自己添加到车轮组并以这种方式扎根,就会发生这种情况。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.