종료에 대한 액세스는 방지하지만 재부팅은 불가능하게 하려면 어떻게 해야 합니까?

종료에 대한 액세스는 방지하지만 재부팅은 불가능하게 하려면 어떻게 해야 합니까?

플렉스 서버로 실행되는 우분투 PC가 있습니다. 누구도 컴퓨터를 종료할 수 없고 사용자만 컴퓨터를 재부팅할 수 있도록 하려면 어떻게 해야 합니까? Windows에서는 가능하다는 것을 알고 있지만 우분투에서는 가능한지 궁금합니다.

답변1

이를 수행하는 가장 효과적인 방법은 다음과 같이 전원 끄기 대상을 마스크하는 것입니다.

sudo systemctl mask poweroff.target

이제 전원 버튼을 누르거나 기계의 전원을 물리적으로 분리하지 않는 한 누구도 기계를 종료할 수 없습니다.

재부팅은 이 마스크의 영향을 받지 않습니다.


나중에 유지 관리나 하드웨어 교체를 위해 시스템을 종료해야 하는 경우 unmask다음을 수행할 수 있습니다.

sudo systemctl unmask poweroff.target

답변2

관리자가 아닌 사용자에게 재부팅 권한을 부여해야 하는 경우sudoers파일 에 해당 항목을 추가할 수 있습니다 .reboot(및/또는 systemctl reboot실행하려는 항목에 따라). 그런 다음 실행 sudo reboot(및/또는 ) 할 수 있습니다 sudo systemctl reboot.이 답변에서는 다른 방법으로는 액세스할 수 없다고 가정합니다.sudo — 즉, 그룹에 속하지 않고 관리자가 아닌 일반 사용자입니다 wheel.

파일 sudoers은 에 있지만 /etc/sudoers귀하는해서는 안 된다직접 수정하세요. 대신 를 사용해서만 편집해야 합니다 visudo. 편집하려면 루트여야 하므로 를 실행해야 합니다 sudo visudo. 이 visudo명령은 편집 내용의 구문을 확인하므로 구성이 손상되거나 방지되는 것을 방지하려면 항상 이 명령을 사용해야 합니다.당신 자신향후 루트 액세스 권한을 얻습니다.

그런 다음 파일에 다음 줄과 같은 내용을 추가할 수 있습니다 sudoers.

username ALL=(root): /usr/sbin/reboot
username ALL=(root): /usr/bin/systemctl reboot

username사용자의 사용자 이름(또는 %groupname그룹)이고 경로는 시스템의 명령에 대한 실제 경로입니다( which예: which reboot.로 확인).

자세한 내용은 다음을 확인하세요.man sudoers,man sudo, 그리고man visudo.

관련 정보