CentOS7 컴퓨터에서 이 서비스를 활성화하려면 systemctl 활성화 명령을 사용해야 하는 사용자는 누구입니까?

CentOS7 컴퓨터에서 이 서비스를 활성화하려면 systemctl 활성화 명령을 사용해야 하는 사용자는 누구입니까?

저는 시스템 관리자가 아니며(소프트웨어 개발자입니다) 이번에는 Wazuh(SIEM 소프트웨어)에서 모니터링할 일부 CentOS 시스템에 일부 에이전트를 설치해야 했습니다. 다음과 같은 질문이 있습니다. 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 액세스 권한이 있음). 관리 권한이 있습니다.
  • 사용자 2SSH 액세스 권한이 없는 두 번째 관리자입니다. 관리 권한이 있지만 컴퓨터에서 작업하고 이 Wazuh 에이전트 활동에 관여하지 않는 다른 사람이 사용합니다.

그렇다면 최선의 선택은 무엇입니까? 개인 관리 사용자(adminuser) 사용을 고려하고 있지만 이것이 최선의 선택인지 확신할 수 없습니다.

또 다른 질문은 이 명령을 통해 wazuh-agent 서비스를 활성화했다는 것입니다. 머신이 재부팅되면 어떻게 되나요? 다시 시작한 후에 서비스가 자동으로 시작됩니까, 아니면 수동으로 시작해야 합니까?

답변1

systemctl루트가 아닌 사용자로 실행 하면 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

어떤 사용자가 상승된 권한을 가지고 있는지에 관계없이 동일한 효과가 발생합니다. 이게 관리자란 말인가요? 아니면 서로 다른가요? 내 기본 추측은 그것들이 모두 같다는 것입니다. 다시 시작의 경우, 활성화는 다시 시작을 담당하는 명령으로, 기본적으로 시작을 의미합니다( start서비스를 시작하는 와는 반대로).그 시간과 그 장소).

답변3

systemctl enable/disable/stop/run/etc명령에는 일반적으로 루트 계정이 필요하거나 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의 많은 시스템 명령에는 루트 액세스 권한이 필요합니다(일반적으로 sudo. 특정 작업을 수행할 권한이 있는 사람을 제어하는 ​​것은 일반적으로 구성을 통해 수행됩니다 sudo. 이것은 Linux의 오랜 패러다임입니다 ...

그러나 체계적( systemctl)폴킷 사용루트가 아닌 사용자가 권한 있는 명령을 실행할 수 있도록 허용합니다. 루트가 무엇이든 할 수 있게 해줍니다.(이것이 하드코딩된 것인지 아니면 단지 일반적인 구성인지는 확실하지 않습니다). 그러나 systemctl원하지 않으면 루트로 호출할 필요가 없습니다.

사용자 목록을 보면,사용하는 데에는 큰 차이가 없을 것입니다.. 선택한 사용자의 비밀번호를 입력하라는 메시지가 표시되므로 가장 큰 차이점은 올바른 비밀번호를 알고 있는지 여부입니다.

앞서 언급했듯이 여전히 systemctl루트로 호출할 수 있습니다. sudo 액세스 권한이 있는 경우 다음을 사용하는 것이 좋습니다.

sudo systemctl enable wazuh-agent

현재 사용자의 비밀번호만 묻습니다.


머신이 재부팅되면 어떻게 되나요?

이는 실제로 서비스 자체의 구성에 따라 다릅니다. 가장 흔한예, 재부팅 시에만 서비스가 다시 시작됩니다. 그리고 이름을 보니 이게 아닐까 싶습니다. 그러나 이는 특정 서비스에 따라 다릅니다.

관련 정보