답변:
sudo su user01
스크립트에서 실행 한다고해서 다음 명령이 결과 쉘로 전송되는 것은 아닙니다. 실제로 이것은 새로운 쉘이 user01로 생성되어 종료되지 않음을 의미합니다!
두가지:
-c 'command...'
처럼 인수를 su 에 전달하여 다른 사용자로 명령을 실행할 수 있습니다 su user01 -c '/etc/init.d/script start'
.chkconfig
또는 update-rc.d
. 또한 /etc/init.d에서로 시작해서는 안되는 작업을 원하지 않습니다 root
. 작업 자체는 다른 사용자 계정으로 자유롭게 포크 할 수 있지만 루트가 호출해야합니다.무언가를 /etc/crontab
넣고 실행할 수 있습니다@reboot
@reboot username /etc/init.d/script start
sudoers에서 requiretty (사용자가 로그인해야 함) 때문에 sudo로 해당 스크립트를 실행할 수 없습니다. 다소 위험 할 수있는 비활성화를 원할 수 있습니다.
또한 runsuid라는 다소 오래된 도구가 있습니다. http://freecode.com/projects/runsuid
HTH