Debian init.d 스크립트를 CentOS로 이식하고 있습니다. 데비안 스크립트에서는 start-stop-daemon을 사용하여 프로세스를 시작합니다. 이 스크립트는 데몬을 시작할 때 start-stop-daemon의 --group 플래그를 사용하여 다른 그룹 ID로 변경합니다.
CentOS의 초기화 스크립트에서 데몬의 그룹 ID를 설정하는 방법은 무엇입니까?
답변1
CentOS가 더 나은 기능을 제공하지 않는 경우(약간 놀랍습니다) su
덜 알려진 CentOS를 사용할 수 있습니다 sg
.
sg foogroup -c 'exec foodaemon --bar'
답변2
CentOS 초기화 스크립트는 대부분의 다른 초기화 스크립트에서 사용되는 "데몬" 함수를 선언하는 /etc/init.d/functions를 사용합니다. 그러나 데몬은 그룹 플래그를 허용하지 않습니다.
마지막으로 다음을 호출합니다.
$nice runuser -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $*"
runuser의 빠른 /sbin/runuser --help
표시는 지정된 그룹에 대한 플래그를 허용하므로 다음을 시도하십시오.
runuser -g $group; daemon ...
답변3
답변4
아주 오래된 질문이지만 몇 가지 사항을 추가할 수 있다고 생각했습니다.
/sbin/runuser를 호출하는 데몬의 본질적으로 결함이 있는 방식을 사용하여 간단히 비용을 지불하고 사용자 이름을 다음과 같이 설정할 수 있습니다.
echo -n "Starting ${prog}"
daemon --user='nobody -Gnogroup' $exec &
echo
작동합니다.
특히 지저분하지만 runuser를 직접(또는 두 번) 호출하지 않고도 데몬을 피기백할 수 있습니다.