Линукс РедХат 7.3. Надо включить сервис в автозагрузку и чтоб он не как рут запускался , а из под другого пользователя
» Как в Linux включить сервис в автозагрузку?
inetd
смотри /etc/rc.d/rc.local, обычно демоны имеют опцию стартовать от имени другого пользователя
axelk
а есил прописать просто что-нить типа
/usr/local/apache/bin/apachectl start
отдельное строкой, то оно заработает?
а есил прописать просто что-нить типа
/usr/local/apache/bin/apachectl start
отдельное строкой, то оно заработает?
например в /etc/rc.d/rc.sysinit в конец добавь
su user /путь/скрипт
su user /путь/скрипт
Guest
Не, ни фига не работает... а su зачем? я ведь под рутом процесс запускаю...
Не, ни фига не работает... а su зачем? я ведь под рутом процесс запускаю...
Цитата:
а su зачем? я ведь под рутом процесс запускаю
А su позволяет не только повышать приоритет юзера до рута, но и понижать приоритет рута до юзера. Т.е. будучи рутом, ты можешь для системы выглядеть как какой-то, выбранный тобой, юзер. Кхм, понятно написал? В общем, `man su`, если что.
А вообще не парься. Либо посмотри, не может ли сам демон запускаться под произвольным аккаунтом, как тебе уже писал axelk, либо `chown user.group daemon && chmod +s daemon`, т.е. используй SUID.
ooptimum
Да мне вообще все равно подд каким юзером запускаться... мне нужно сервис включить в автозагрузку.... а он не включается
Да мне вообще все равно подд каким юзером запускаться... мне нужно сервис включить в автозагрузку.... а он не включается
а из rc.local не пускается? Попробуй его в rc.m тады, хотя рекоммендуют из локал пускать. Эт применительно для slackware, но думаю и для другим тоже
axelk
пишу следующее в /etc/rc.local:
Код:
/usr/local/apache/bin/apachectl start
пишу следующее в /etc/rc.local:
Код:
/usr/local/apache/bin/apachectl start
кусок из rc.M (Slackware)
# Start Web server:
if [ -x /etc/rc.d/rc.httpd ]; then
. /etc/rc.d/rc.httpd start
fi
# Start Web server:
if [ -x /etc/rc.d/rc.httpd ]; then
. /etc/rc.d/rc.httpd start
fi
axelk
Код: -x /etc/rc.d/rc.httpd
Код: -x /etc/rc.d/rc.httpd
#!/bin/bash
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/access.conf
# config: /etc/httpd/conf/httpd.conf
# config: /etc/httpd/conf/srm.conf
# Source function library.
. /etc/rc.d/init.d/functions
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=/usr/sbin/httpd
prog=httpd
RETVAL=0
# Find the installed modules and convert their names into arguments httpd
# can use.
moduleargs() {
moduledir=/usr/lib/apache
moduleargs=`
/usr/bin/find ${moduledir} -type f -perm -0100 -name "*.so" | env -i tr '[:lower:]' '[:upper:]' | awk '{\
gsub(/.*\//,"");\
gsub(/^MOD_/,"");\
gsub(/^LIB/,"");\
gsub(/\.SO$/,"");\
print "-DHAVE_" $0}'`
echo ${moduleargs}
}
# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure. So we just do it the way init scripts
# are expected to behave here.
start() {
echo -n $"Starting $prog: "
daemon $httpd `moduleargs` $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}
reload() {
echo -n $"Reloading $prog: "
killproc $httpd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/run/httpd.pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
Вод тебе мой рабочий конфиг обзови его какнибудь и засунь в rc5.d у меня все пашет под RedHat 7.3
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/access.conf
# config: /etc/httpd/conf/httpd.conf
# config: /etc/httpd/conf/srm.conf
# Source function library.
. /etc/rc.d/init.d/functions
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=/usr/sbin/httpd
prog=httpd
RETVAL=0
# Find the installed modules and convert their names into arguments httpd
# can use.
moduleargs() {
moduledir=/usr/lib/apache
moduleargs=`
/usr/bin/find ${moduledir} -type f -perm -0100 -name "*.so" | env -i tr '[:lower:]' '[:upper:]' | awk '{\
gsub(/.*\//,"");\
gsub(/^MOD_/,"");\
gsub(/^LIB/,"");\
gsub(/\.SO$/,"");\
print "-DHAVE_" $0}'`
echo ${moduleargs}
}
# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure. So we just do it the way init scripts
# are expected to behave here.
start() {
echo -n $"Starting $prog: "
daemon $httpd `moduleargs` $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}
reload() {
echo -n $"Reloading $prog: "
killproc $httpd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/run/httpd.pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
Вод тебе мой рабочий конфиг обзови его какнибудь и засунь в rc5.d у меня все пашет под RedHat 7.3
Moonlight0x0
некрофилить на данном форуме не принято
некрофилить на данном форуме не принято
Страницы: 1
Предыдущая тема: Восстановление lilo в Linux
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.