업데이트 1:

업데이트 1:

루트가 아닌 특정 사용자가 CentOS7에서 특정 시스템 서비스를 시작/중지하도록 허용하고 싶습니다. 하지만 지금까지 시도한 단계 중 어느 것도 성공하지 못했습니다. 내가 시도한 것은 다음과 같습니다.

sudoers 파일에 다음 세부 정보를 추가했습니다. 여기서 testudo는 사용자 그룹이고 여러 사용자가 그룹에 추가되었습니다.

## Manage specific systemd services
Cmnd_Alias SYSTEMD = /bin/systemctl start httpd, /bin/systemctl stop httpd, /bin/systemctl restart httpd

## Allows nfam group to run init-system commands using the SYSTEMD command alias
%testsudo ALL=NOPASSWD: SYSTEMD

그룹 및 추가된 사용자 세부정보:

# cat /etc/group | grep testsudo
testsudo:x:1009:userone,usertwo,userthree

이제 사용자(testudo 그룹의 일부)를 사용하여 서비스를 시작하려고 하면 인증이 필요하다는 메시지가 표시됩니다.

[userone@msgdroid ~]$ systemctl start httpd
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Multiple identities can be used for authentication:
 1.  admin
 2.  priya
 3.  sekar
 4.  gokul
 5.  ravi
 6.  murali
Choose identity to authenticate as (1-6):

업데이트 1:

나는 또한 사용했다스도명령 앞에 있지만 작동하지 않습니다.

$ sudo systemctl start httpd
[sudo] password for userone:
Sorry, user userone is not allowed to execute '/bin/systemctl start httpd' as root on webapp.

업데이트 2:

  • 수정하자면, 서버는 비밀번호가 아닌 SSH 키를 통해서만 액세스할 수 있습니다. 이것이 문제가 될 수 있습니까?

답변1

나는 이것을 시도하는 것이 좋습니다:

sudo systemctl start httpd

sudoers 파일을 수정한 후에는 반드시 로그아웃했다가 다시 로그인해야 합니다. (이렇게 하지 않으면 사용이 불가능할 수 있습니다 sudo.)

다음을 편집하고 바꿀 수도 있습니다.

%testsudo ALL=NOPASSWD: SYSTEMD

그리고

%testsudo ALL=(root) NOPASSWD: SYSTEMD

답변2

사용되는 경우 sudoers이를 사용해야 sudo하지만 스크립트나 별칭에서 사용을 숨길 수 있습니다.

사용자가 아직 그룹에 가입하지 않은 것이 문제인지 궁금합니다. 새 그룹, 쓰기 전용 파일( /etc/groups)에 사용자를 추가합니다. 활성화하려면 새 그룹으로 새 프로세스를 시작해야 합니다. 이를 수행하는 두 가지 쉬운 방법이 있습니다. 1. 로그아웃하고 다시 실행합니다 newgrp groupname. 그러면 현재 쉘 위에 새 쉘이 시작됩니다. 귀하가 해당 그룹의 구성원인 경우에만(문서에 따라 ) /etc/groups새 그룹에 추가됩니다 .

관련 정보