我不是系统管理员(我是软件开发人员),这次我必须在一些 CentOS 机器上安装一些代理,以便被 Wazuh(一个 SIEM 软件)监控。我有以下疑问。通过 YUM 成功安装代理后,我需要启用与此 Wazuh 代理相关的服务。
然后我必须执行以下命令来启用 wazuh-agent 服务:
[adminuser@my-machine ~]$ systemctl enable wazuh-agent
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ===
Authentication is required to manage system service or unit files.
Multiple identities can be used for authentication:
1. Cloud User (centos)
2. adminuser
3. user2
问题是,执行它询问我想要启用此服务的用户的命令(需要用户身份验证)。
在这台机器上我定义了3个用户:
- 森托斯:它是具有管理权限的用户,用于通过 SSH 首次访问该计算机,并从此处用于创建其他 2 个用户。
- 管理用户:这是我的管理员用户(并且具有 SSH 访问权限)。它具有管理权限。
- 用户2它是没有 SSH 访问权限的第二个管理员用户。它具有管理权限,但由在该计算机上工作且不参与此 Wazuh 代理活动的另一个人使用。
那么什么是最好的选择呢?我正在考虑使用我的个人管理员用户(adminuser),但我不确定这是最好的选择。
另一个疑问是:通过这个命令我启用了这个 wazuh-agent 服务。如果机器重新启动会发生什么?重启后该服务会自动启动还是需要手动启动?
答案1
当您systemctl
以非root用户身份运行时,systemd使用PolicyKit来检查您是否可以提升权限。其他答案告诉您使用 sudo,这也是一个好主意,但 sudo 使用与 systemd 完全不同的配置来确定您是否可以提升权限。
CentOS 上的 PolicyKit 配置很可能/etc/polkit-1/rules.d/50-default.rules
如下所示:
polkit.addAdminRule(function(action, subject) {
return ["unix-group:wheel"];
});
这意味着应该能够执行管理功能的帐户是“wheel”组的成员。
答案2
无论哪个用户具有提升的权限都会产生相同的效果。你说的管理员就是这个意思吧?或者它们有什么不同?我的默认猜测是它们都是平等的。至于重新启动,enable 是负责重新启动的命令,意味着默认启动(而不是 just start
,它启动一个服务彼时彼地)。
答案3
systemctl enable/disable/stop/run/etc
命令通常需要 root 帐户或使用sudo
.很难理解你的真正意思“帐户 X 具有管理权限”。在 Linux 中,root
它几乎可以做所有事情,您可以授予用户访问权限sudo
,允许他们运行某些命令,而root
不允许他们做其他事情。
另一个疑问是:通过这个命令我启用了这个 wazuh-agent 服务。如果机器重新启动会发生什么?
systemctl enable
将使服务在重新启动后自动启动。
https://helpdeskgeek.com/linux-tips/hdg-explains-what-is-sudo-root-on-linux/
答案4
Linux 中的许多系统命令都要求您具有 root 访问权限(通常通过使用 来实现sudo
)。通常通过配置来控制谁有权执行特定任务sudo
。这是 Linux 中长期存在的范例......
然而systemd( systemctl
)使用 polkit允许非 root 用户执行特权命令。它将允许root做任何事情(我不确定这是硬编码还是只是通用配置)。但是,systemctl
如果您不愿意,则无需以 root 身份调用。
当你看到一份用户列表时,你使用的应该没有太大区别。它会要求您输入所选用户的密码,因此主要区别在于您是否知道正确的密码。
如前所述,您仍然可以systemctl
以 root 身份调用。如果您有 sudo 访问权限,您可能更喜欢使用:
sudo systemctl enable wazuh-agent
这只会询问您当前用户的密码。
如果机器重新启动会发生什么?
这实际上取决于服务自身的配置。 最常见的是的,这只会在重新启动时重新启动服务。而且看名字我觉得应该是这个。但请注意,这取决于具体服务。