Linux nologin 用户使用su执行命令(以Tomcat自启动脚本为例)

发表于: other | 作者: | 日期: 2015/6/09 06:06
标签:

今日在一台Fedora Server上安装了tomcat 8.0.15。使用脚本设置其自启动。脚本如下:

#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.8.0_25
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/java/apache-tomcat-8.0.15
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0

但是鉴于使用root用户启动会造成不必要的安全隐患,故而新建了一个用户fsrvweb用于管理tomcat服务器。

groupadd fsrvweb
useradd -g fsrvweb -s /bin/bash fsrvweb

运行脚本改写如下:

#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.8.0_25
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/java/apache-tomcat-8.0.15
case $1 in
start)
/bin/su fsrvweb -s $CATALINA_HOME/bin/startup.sh
;;
stop)
/bin/su fsrvweb -s $CATALINA_HOME/bin/shutdown.sh
;;
restart)
/bin/su fsrvweb -s $CATALINA_HOME/bin/shutdown.sh
/bin/su fsrvweb -s $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0

可是该用户除了管理各种服务之外并不需要进行登录操作,所以将用户的shell改为nologin:

usermod fsrvweb -s /sbin/nologin
echo “/sbin/nologin” >> /etc/shells

但是这样无法执行上面的脚本,因为nologin不具有执行命令功能,所以将以上代码改为:

#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.8.0_25
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/java/apache-tomcat-8.0.15
case $1 in
start)
/bin/su fsrvweb -s /bin/bash $CATALINA_HOME/bin/startup.sh
;;
stop)
/bin/su fsrvweb -s /bin/bash $CATALINA_HOME/bin/shutdown.sh
;;
restart)
/bin/su fsrvweb -s /bin/bash $CATALINA_HOME/bin/shutdown.sh
/bin/su fsrvweb -s /bin/bash $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0

这样就可以顺利执行该脚本了。
该方法也可用于其他一些类似服务的设置。
参考:

Install Tomcat 8 on CentOS, RHEL, or Fedora


man su
来源:http://www.omgdba.com/nologin-user-execute-command-by-su-on-linux.html

: https://blog.darkmi.com/2015/06/09/2787.html

本文相关评论 - 1条评论都没有呢
Post a comment now » 本文目前不可评论

No comments yet.

Sorry, the comment form is closed at this time.