루트가 아닌 특정 사용자가 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
새 그룹에 추가됩니다 .