python 프로그램 + python 종료 후 sudo 종료(전반 이후 비밀번호를 묻는 메시지를 표시하지 않는 가장 좋은 방법은 무엇입니까?)

python 프로그램 + python 종료 후 sudo 종료(전반 이후 비밀번호를 묻는 메시지를 표시하지 않는 가장 좋은 방법은 무엇입니까?)

Python 프로그램을 실행하고 프로그램 종료 후 시스템을 종료하는 가장 좋은 방법(가장 안전한 방법)이 궁금합니다(Ssh 세션에서 sudo 사용).

제가 처음에 하고 싶었던 일은 다음과 같습니다.

nohup python py_name.py && sudo shutdown -h now &또는 nohup python py_name.py ; sudo shutdown -h now &

( sudoSsh 세션에 있고 그것 없이는 닫을 수 없고 실행 후 시스템을 떠나고 싶기 nohup때문입니다 )&

문제는 Python 프로그램이 약 5-8시간 정도 걸리고 나중에 pw 쉘 프롬프트가 표시되는 것을 원하지 않는다는 것입니다(첫 번째 명령을 실행할 때 프롬프트를 표시할 수 있습니까?). 내 시스템은 우분투 18.04이므로 sudo 시간 초과(15분?) 때문에 "sudoing"도 작동하지 않을 것 같습니다.

한 가지 옵션은 두 명령을 모두 사용하여 수퍼유저 모드로 전환하거나 스크립트를 작성하고 실행하는 것입니다 sudo ./script. 그러나 Python 프로그램을 실행한다는 점을 고려하면 안전합니까? (간단한 가정용 컴퓨터 설정이므로 문제가 되지 않을 수도 있습니다.)

제가 모르는 다른 방법이 있나요?

- - - 편집하다- - -

나는 달리려고 노력했다 sudo sh -c 'python py_name.py && sudo shutdown -h now'. sudo sh -c 'command'명령을 실행하려면 다른 쉘을 실행하세요. 모든 쉘이 sudo에 있기 때문에 이렇게 작동합니다. 문제는 내가 Python 환경을 사용하는데 이 새 쉘이 활성화되지 않는다는 것입니다.

- - -해결책- - -

실제 솔루션은 위에서 언급한 대로(솔루션을 통해) sudoers 파일을 변경하여 sudo visudo런타임에 비밀번호가 필요하지 않은 항목 목록에 shutdown 을 추가하는 것입니다 sudo shutdown. 모든 sudoers 파일은 다르지만 제 경우에는 my_username ALL=(ALL) NOPASSWD: /sbin/shutdown첫 번째 "공백"이 탭 문자이고 /sbin/shutdown실행하려는 명령의 경로인 위치를 추가해야 했습니다 ( check path 를 사용할 수 있음 command -v shutdown).

답변1

/etc/sudoers 파일에서 이 사용자에 대해 비밀번호 없는 sudo를 설정할 수 있습니다. 예를 들어 SSH 서버에서(물론 더 엄격할 수도 있습니다. 즉, 비밀번호를 끄는 것만 허용하지 않는 등):

귀하의 사용자 ALL = (ALL) NOPASSWD: ALL

관련 정보