명령을 사용하여 명령을 실행하여 su -s
프로세스를 시작합니다. 루트 사용자가 프로세스를 소유하는 것을 원하지 않기 때문입니다.
나는 명령을 실행하여 이것을 시도했습니다
su -s "$CATALINA_HOME/bin/catalina.sh run" tomcat
반품su: /opt/apache-tomcat/bin/catalina.sh run: No such file or directory
su -s
이 오류를 생성하지 않고 매개변수가 포함된 명령을 실행하려면 어떻게 해야 합니까 ?
답변1
당신이 달리고 있다면su
as 를 root
사용하여 -s
다른 쉘을 지정하고( 여기서는 사용자에게 유효한 쉘이 없으므로 root
필요에 따라 실행 ) 실행할 명령을 지정할 수 있습니다.tomcat
-c
su -s /bin/sh -c "$CATALINA_HOME/bin/catalina.sh run" tomcat
당신은 찾을 수 있습니다start-stop-daemon
유용합니다. 사용할 사용자와 그룹, 데몬 시작 방법 등을 지정하기 위한 많은 옵션이 있습니다.tomcat8
초기화 스크립트데비안에서 사용하면 유용한 영감을 얻을 수 있습니다. 아니면 systemd 단위나 시스템 초기화에 적합한 무엇이든 작성하는 것을 고려할 수 있습니다.
답변2
-s
명령의 스위치는 su
지정된 사용자의 쉘을 변경하는 것입니다. 실행하려는 명령 앞에는 -c
스위치가 와야 합니다.
따라서 찾고 있는 명령은 다음과 같습니다.
su -s /bin/bash -c "$CATALINA_HOME/bin/catalina.sh run" tomcat
답변3
다른 질문이 있으시면 방문해주세요.https://stackoverflow.com/questions/37753783/그리고신호 9에 의해 쉘 스크립트가 종료되었는지 알 수 있는 방법이 있습니까?귀하의 질문에서 누락된 점은 시작 시 Tomcat을 실행하려고 한다는 것입니다.
이 경우:
start-stop-daemon
적합하지 않습니다.- 어느 것도 아니다
su
. - Poor Man's Daemon Supervisor는 쉘 스크립트에서 PID 파일 관리도 수행하지 않습니다.
이들 모두는 신흥 기업이 하는 일을 모방하려고 합니다.곧장. su
특히 권한을 제거하는 도구가 아니기 때문에 사용하기에는 좋지 않습니다. 그것은 도구이다다음에 추가로그인 세션의 권한. 요즘에는 다양한 로그인 세션 관리 하위 시스템의 배후에서 참여하므로 데몬에서 수퍼유저 권한을 제거하는 (훨씬 간단한) 작업에 특히 적합하지 않습니다. start-stop-daemon
그냥 중복됩니다. 그리고Upstart는 프로세스 ID를 알고 있습니다.그 아이들.
시작 작업 파일에서 setuid
및(해당하는 경우) setgid
섹션을 사용하여 권한이 없는 사용자의 권한을 제거합니다.
setuid 바람둥이
catalina.sh
(실제로는 필요하지 않음) 을 통해 전화하는 경우 sh -c
시스템화된 House of Horror 영역에 속하지 마십시오. (upstart가 이러한 작업을 수행할 때 상황은 약간 덜 심각합니다.) daemontools 방식으로 작업을 수행하고 쉘을 스크립트에 연결하여 exec
쉘의 명령을 통해 호출하여 upstart가 데몬을 직접 하위로 처리하도록 합니다. (그리고 신생기업 expect
도 이 사실을 알고 올바른 스탠자를 사용하도록 하세요 .)
catalina.sh
그러나 upstart는 systemd 및 기타 서비스 관리 도구와 마찬가지로 자신을 직접 호출 할 수 있으므로 명시적인 셸이 필요하지 않습니다 . 따라서 인터프리터가 /bin/bash
실제로 스크립트에 대한 올바른 인터프리터인지 확인하는 것에 대해 걱정할 필요가 없습니다 .
$CATALINA_HOME/bin/catalina.sh를 실행하고 실행합니다.
추가 읽기
- 제임스 헌트와 클린트 바이럼(2014). "
setuid
". 누보 리치 요리법. - 제임스 헌트와 클린트 바이럼(2014). "
setgid
". 누보 리치 요리법. - 제임스 헌트와 클린트 바이럼(2014). "
console log
". 누보 리치 요리법. - 조나단 데보인 폴라드(2014).
su
사용자 삭제 권한을 남용하지 마십시오 . 자주 주어지는 답변입니다. - 조나단 데보인 폴라드(2015).무의미한 추가 레이어로 Apache Tomcat 래핑 체계화된 공포의 집.
- 조나단 데보인 폴라드(2015). 시스템화 된 공포의 집. 일반적인 답변.
- https://superuser.com/a/723333/38062
- https://superuser.com/questions/683855/