![python 프로그램 + python 종료 후 sudo 종료(전반 이후 비밀번호를 묻는 메시지를 표시하지 않는 가장 좋은 방법은 무엇입니까?)](https://linux55.com/image/173754/python%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%2B%20python%20%EC%A2%85%EB%A3%8C%20%ED%9B%84%20sudo%20%EC%A2%85%EB%A3%8C(%EC%A0%84%EB%B0%98%20%EC%9D%B4%ED%9B%84%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%EB%AC%BB%EB%8A%94%20%EB%A9%94%EC%8B%9C%EC%A7%80%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EA%B0%80%EC%9E%A5%20%EC%A2%8B%EC%9D%80%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F).png)
Python 프로그램을 실행하고 프로그램 종료 후 시스템을 종료하는 가장 좋은 방법(가장 안전한 방법)이 궁금합니다(Ssh 세션에서 sudo 사용).
제가 처음에 하고 싶었던 일은 다음과 같습니다.
nohup python py_name.py && sudo shutdown -h now &
또는
nohup python py_name.py ; sudo shutdown -h now &
( sudo
Ssh 세션에 있고 그것 없이는 닫을 수 없고 실행 후 시스템을 떠나고 싶기 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