로그인 시 루트 프로그램 실행

로그인 시 루트 프로그램 실행

Apache2, SSH 및 유사한 도구는 장치를 부팅하고 그래픽으로 로그인할 때(재부팅하지 않는 한) 작동하지 않는 것 같습니다. 작동하려면 /etc/init.d/apache2 restartSSH를 입력하고 동일한 작업을 수행해야 했습니다. 모니터나 키보드 없이 장치를 사용할 계획입니다. 자동으로 로그인을 설정하고 서비스를 다시 시작하는 쉘 스크립트를 만들어 ~/.kde/Autostart.

작동하지 않는 이유는 서비스를 다시 시작하려면 루트 액세스 권한이 필요하기 때문입니다. 입력이나 모니터 없이 다시 시작해야 합니다. 루트가 아닌 사용자가 apache2를 다시 시작하도록 허용하거나 루트 사용자가 비밀번호 없이 이 실행 파일을 실행하도록 허용하려면 어떻게 해야 합니까?


또한 sudoers 파일을 편집하고 다음을 추가해 보았습니다.

username ALL = NOPASSWD: /etc/init.d/apache2
username ALL = NOPASSWD: /etc/init.d/ssh
username ALL = /etc/init.d/apache2
username ALL = /etc/init.d/ssh

시도할 때 여전히 권한이 거부되었다고 표시됩니다.


데비안 8 (제시)

답변1

실행 중인 명령을 사용하여 sudo이 작업을 수행 할 수 있습니다.nopasswd하지만내가 보기에는 당신이 아마도 해결해야 할 더 깊은 문제에 대한 해결 방법을 만들려고 노력하는 것 같습니다.

답변2

마침내 에코를 통해 비밀번호를 입력하는 방법을 찾았습니다(유일한 문제는 키보드가 없다는 것이기 때문입니다).

#!/bin/bash
echo -e "password\n" | sudo -S command --flag argument

-e백슬래시 이스케이프가 활성화되고 sudo가 -SSTD 입력을 활성화합니다(그래서 에코의 입력이 파이프됩니다). 매뉴얼에 따르면 입력은 이스케이프 문자로 끝나야 -S합니다.\n

관련 정보