헤드리스 컴퓨터(Ubuntu 14.04 서버)가 부팅되고 사용자로 실행될 때 자동으로 시작되는 Java 애플리케이션이 있습니다. 앱이 완료되면 외부 회로 차단기가 작동되어 전원이 차단될 예정이므로 전원을 끄는 스크립트를 실행해야 합니다.
다음 부팅 시 종료 오류가 감지되면 정지를 허용할 수 없습니다.
스크립트를 작성하려고 하면 모두 수퍼유저의 비밀번호를 요청하게 됩니다. 머신이 인터넷과 분리되어 있기 때문에 비밀번호를 스크립트의 텍스트로 받아들일 수 있습니다.
저는 bash나 Linux에 능숙하지 않습니다.
스크립트 권한:
$ ls -la shutdown
-rwsr-xr-x 1 root root 209 Mar 18 16:55 shutdown
답변1
이를 수행하는 방법에는 여러 가지가 있습니다. 가장 쉽고 최악인 것은 제안한 대로 스크립트에 비밀번호를 포함시키는 것입니다. 컴퓨터가 인터넷에 연결되어 있지 않기 때문에 대부분의 보안 질문은 의문의 여지가 있으며 STDIN에서 비밀번호가 전달되도록 허용하는 sudo
옵션이 있습니다.-S
echo password | sudo -S shutdown -h now
보다 안전한 접근 방식은 특정 사용자가 shutdown
암호 없이 명령을 실행할 수 있도록 허용하는 것입니다. 먼저 visudo
편집 sudoers
파일을 실행하고 다음 줄을 추가합니다.
nate ALL=NOPASSWD:/sbin/shutdown
이렇게 하면 사용자가 암호를 요구하지 않고 실행할 수 있습니다 nate
.sudo /sbin/shutdown