LINUX.ORG.RU
ФорумAdmin

Запуск процесса от имени другого пользователя


0

0

Запускаю сервер apache-tomcat от имени "слабого" пользователя:

tomcat:x:32005:32006:Tomcat user:/dev/null:/sbin/nologin

запускаю сервер вручную таким путем из рутовского шелла:

su -m tomcat -c '/usr/local/tomcat/bin/startup.sh'
все работает.


использую нехитрую службу, для автозапуска:

#!/bin/sh
#
# tomcat Start/Stop the Jakarta Tomcat
#
# chkconfig: 346 80 13
# description: Tomcat is the servlet container that is used


# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
KIND="tomcat"

case "$1" in
start)
su -m tomcat -c '/usr/local/tomcat/bin/startup.sh'
;;
stop)
su tomcat -c '/usr/local/tomcat/bin/shutdown.sh'
;;
restart)
su tomcat -c '/usr/local/tomcat/bin/shutdown.sh'
su tomcat -c '/usr/local/tomcat/bin/startup.sh'
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?


она отлично добавляется в систему, но при запуске сообщает:

This account is currently not available.


Есть ли способ запустить процесс таким образом, не давая юзеру шелла?

Ответ на: комментарий от Deleted

Не, так не хочет...

а вот

sudo -u tomcat '/usr/local/tomcat/bin/shutdown.sh' -

практически работает, только не хочет наследовать переменные окружения. Конечно можно переопределить вручную, но может способ есть?...

triclosan
() автор топика
Ответ на: комментарий от triclosan

ест-но не хочет ... Переопредели в том же скрипте ...

anonymous
()
Ответ на: комментарий от triclosan

У меня ( и скорее всего и у тебя) в /etc/sudoers стоит

Defaults env_reset

Сделай например,

Defaults:%users !env_reset,

что бы для группы users переменные окружения не сбрасывались (можешь сделать для всех пользователей, Defaults !env_reset)

mer_ZU
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.