Jul 102007
 

厳密な方法ではありません。禁止ではなく防止できるかも、というレベルです。
rcスクリプト等でtomcatの起動ユーザをroot以外にしていたとします。

case "$1" in
  start)
    su - tomcat -c "$CATALINA_HOME/bin/startup.sh"
    ;;
  stop)
    su - tomcat -c "$CATALINA_HOME/bin/shutdown.sh"
    ;;

ですが、$CATALINA_HOME/bin/startup.shを直接実行されるとtomcat以外のユーザで起動されてしまう可能性があります。そこでsetenv.shを使い、tomcatユーザ以外で実行した場合にメッセージを出して終了するようにしてみました。

if [ "`/usr/bin/whoami`" != "tomcat" ]; then
  echo
  echo "tomcatユーザ以外では起動しないでください。"
  echo "/etc/rc.d/init.d/tomcat {start|stop}を使ってね。"
  echo
  exit
fi
:

こうしておけば、startup.shレベルであれば起動ユーザをチェックできると思います。

Sorry, the comment form is closed at this time.