저는 아마존 리눅스를 사용하고 있습니다. 사용자 "otheruser"로 로그인하고 다음 텍스트로 test.sh 스크립트를 생성하면
sleep 5 ; sudo reboot now
로그인하고 다음과 같이 스크립트를 실행할 수 있습니다 ...
[davea@mydevbox ~]$ sudo su - otheruser
[sudo] password for davea:
Last login: Wed Apr 20 21:18:48 UTC 2016 on pts/0
[otheruser@mydevbox ~]$ sh test.sh
[otheruser@mydevbox ~]$
Broadcast message from [email protected]
(/dev/pts/0) at 21:19 ...
The system is going down for reboot NOW!
그러나 스크립트의 내용을 다음과 같이 변경하면
sudo service jboss restart
그런 다음 스크립트를 실행하면 비밀번호를 묻는 메시지가 표시됩니다.
[davea@mydevbox ~]$ sudo su - otheruser
[sudo] password for davea:
Last login: Wed Apr 20 21:09:03 UTC 2016 on pts/0
[otheruser@mydevbox ~]$ sh test.sh
[sudo] password for otheruser:
두 번째에는 비밀번호를 입력하라는 메시지가 표시되지 않으므로 두 번째 시퀀스가 첫 번째 시퀀스와 비슷해지기를 원합니다. 어떻게 해야 하나요?
답변1
또 다른 접근 방식은 특정 그룹의 구성원이 다시 시작할 수 있도록 즉, 직접 권한을 부여하도록 PolicyKit을 구성하여 수퍼유저 권한을 얻기 위해 인증을 충족하는 전체 문제를 피하는 것입니다.
/etc/polkit-1/localauthority/50-local.d/50-local.pkla 파일을 생성하고 다음 절을 추가합니다.
[Allow reboot by booters group]
Identity=unix-group:booters
Action=Action=org.freedesktop.consolekit.system.restart-multiple-users
ResultAny=yes
그런 다음 해당 그룹의 구성원 자격이 있는 사용자로부터 작업을 실행합니다.