Запускаю сервер 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.
Есть ли способ запустить процесс таким образом, не давая юзеру шелла?