• Tomcat降权启动


            对于任何降权的操作都是为了更好的保护自己的服务器免受危害,所以我们使用Tomcat也不了外,也需要进行降权操作。因为当 Tomcat以系统管理员身份或作为系统服务运行时,Java运行时取得了系统用户或系统管理员所具有的全部权限。这样一来,Java运行时就取得了所有文件夹中所有文件的全部权限。

           如果黑客或不法分子,利用系统漏洞或缺陷攻入Tomcat,就会获得最高权限,从而破坏网站的正常运行。。

           下面简单描述降权启动的操作步骤:

            1.添加普通用户和组

    [root@mysql-db01 ~]# id mao       ##查看普通用户是否存在
    uid=510(mao) gid=510(mao) groups=510(mao)
    [root@mysql-db01 ~]# useradd mao
    useradd: user 'mao' already exists
    [root@mysql-db01 ~]# groupadd  maohome     ##添加组
    [root@mysql-db01 ~]# usermod -g maohome mao    ##将普通用户加入组中
    [root@mysql-db01 ~]# id mao
    uid=510(mao) gid=515(maohome) groups=515(maohome)
    [root@mysql-db01 ~]# 

    此处之所以添加组是因为便于一个组内的开发,运维,部门经理等不同的角色来管理或运行Tomcat。。

       2.测试root用户下Tomcat能正常启动

    [root@mysql-db01 application]# /data/tomcat/bin/startup.sh 
    Using CATALINA_BASE:   /data/tomcat
    Using CATALINA_HOME:   /data/tomcat
    Using CATALINA_TMPDIR: /data/tomcat/temp
    Using JRE_HOME:        /application/jdk1.8.0_60/jre
    Using CLASSPATH:       /data/tomcat/bin/bootstrap.jar:/data/tomcat/bin/tomcat-juli.jar
    Tomcat started.
    [root@mysql-db01 application]# ps -ef |grep java
    root      35451      1 38 19:03 pts/1    00:00:02 /application/jdk1.8.0_60/jre/bin/java -Djava.util.logging.config.file=/data/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/data/tomcat/endorsed -classpath /data/tomcat/bin/bootstrap.jar:/data/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/data/tomcat -Dcatalina.home=/data/tomcat -Djava.io.tmpdir=/data/tomcat/temp org.apache.catalina.startup.Bootstrap start
    root      35473  35385  0 19:03 pts/1    00:00:00 grep java
    [root@mysql-db01 application]# 

    从上面的ps-ef|grep java中可以看出Tomcat的主进程是以root身份来运行的,接下来我们要做的就是讲这个root换成普通用户。。因此,我们的思路就是建立一个普通用户,并

    在普通用户运行Tomcat。 为了保险起见,我们先备份一份Tomcat站点目录,在其他目录下复制一份启动,防止操作失误。

    3.复制站点目录---备份

    [root@mysql-db01 application]# cp /data/tomcat/ /application/tomcat/
    cp: omitting directory `/data/tomcat/'
    [root@mysql-db01 application]# cp /data/tomcat/ /application/tomcat/ -a
    [root@mysql-db01 application]# cd /application/tomcat
    [root@mysql-db01 tomcat]# ls
    1.txt  bin  conf  data  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
    [root@mysql-db01 tomcat]# 

    4.授权普通用户和组拥有站点目录权限

    [root@mysql-db01 tomcat]# pwd
    /application/tomcat
    [root@mysql-db01 tomcat]#

    [root@mysql-db01 tomcat]# ll #查看站点目录下的属主和属组都为root

    total 116
    -rw-r--r--. 1 root root     0 Oct 13 03:03 1.txt
    drwxr-xr-x. 2 root root  4096 Oct 13 02:47 bin
    drwxr-xr-x. 3 root root  4096 Oct 13 06:42 conf
    drwxr-xr-x. 2 root root  4096 Oct 13 03:03 data
    drwxr-xr-x. 2 root root  4096 Sep 22 18:02 lib
    -rw-r--r--. 1 root root 57011 Sep 28  2015 LICENSE
    drwxrwxr-x. 3 root root  4096 Nov  6 16:22 logs
    -rw-r--r--. 1 root root  1444 Sep 28  2015 NOTICE
    -rw-r--r--. 1 root root  6741 Sep 28  2015 RELEASE-NOTES
    -rw-r--r--. 1 root root 16204 Sep 28  2015 RUNNING.txt
    drwxr-xr-x. 2 root root  4096 Sep 22 18:02 temp
    drwxr-xr-x. 2 root root  4096 Oct 13 06:23 webapps
    drwxr-xr-x. 3 root root  4096 Sep 22 18:35 work
    [root@mysql-db01 tomcat]# chown mao.maohome /application/tomcat/* -R    ###修改站点目录的属主和属组为普通用户。使其对站点目录有权限写入,启动,停止等。
    [root@mysql-db01 tomcat]# ll
    total 116
    -rw-r--r--. 1 mao maohome     0 Oct 13 03:03 1.txt
    drwxr-xr-x. 2 mao maohome  4096 Oct 13 02:47 bin
    drwxr-xr-x. 3 mao maohome  4096 Oct 13 06:42 conf
    drwxr-xr-x. 2 mao maohome  4096 Oct 13 03:03 data
    drwxr-xr-x. 2 mao maohome  4096 Sep 22 18:02 lib
    -rw-r--r--. 1 mao maohome 57011 Sep 28  2015 LICENSE
    drwxrwxr-x. 3 mao maohome  4096 Nov  6 16:22 logs
    -rw-r--r--. 1 mao maohome  1444 Sep 28  2015 NOTICE
    -rw-r--r--. 1 mao maohome  6741 Sep 28  2015 RELEASE-NOTES
    -rw-r--r--. 1 mao maohome 16204 Sep 28  2015 RUNNING.txt
    drwxr-xr-x. 2 mao maohome  4096 Sep 22 18:02 temp
    drwxr-xr-x. 2 mao maohome  4096 Oct 13 06:23 webapps
    drwxr-xr-x. 3 mao maohome  4096 Sep 22 18:35 work
    [root@mysql-db01 tomcat]# 

    5.切换普通用户,启动Tomcat

    [root@mysql-db01 ~]# su - mao
    [mao@mysql-db01 ~]$ ps -ef |grep java
    mao 35582 35562 0 19:15 pts/1 00:00:00 grep java

    [mao@mysql-db01 ~]$ /application/tomcat/bin/startup.sh   ##启动Tomcat
    Using CATALINA_BASE:   /application/tomcat
    Using CATALINA_HOME:   /application/tomcat
    Using CATALINA_TMPDIR: /application/tomcat/temp
    Using JRE_HOME:        /application/jdk1.8.0_60/jre
    Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
    Tomcat started.
    [mao@mysql-db01 ~]$ ps -ef |grep java   #查看Tomcat以普通用户运行了。
    mao       35591      1 44 19:15 pts/1    00:00:02 /application/jdk1.8.0_60/jre/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat/endorsed -classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat -Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrap start
    mao       35608  35562  0 19:15 pts/1    00:00:00 grep java
    [mao@mysql-db01 ~]$ 

    [mao@mysql-db01 conf]$ curl -I 10.0.0.51:8480
    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    Set-Cookie: JSESSIONID=2E0CFB9A0B152A9F62894D66F592796C; Path=/; HttpOnly
    Content-Type: text/html;charset=ISO-8859-1
    Content-Length: 17
    Date: Mon, 06 Nov 2017 11:20:53 GMT

    [mao@mysql-db01 conf]$

    以上就是Tomcat降权启动的过程,如果这个用户是运维人员建立的账户,那么其他的开发人员没有这个权限来启动,停止,重启,或修改Tomcat。但是如果开发人员需要对Tomcat

    进行操作,怎么办呢。

      对于开发人员的权限比较小,我们刚开始建立的组就派上用场了。建立一个属于开发人员的普通用户,并将它加入组,然后给组设立想要的权限,一般给开发设立wr权限即可。

    当然以上的建立普通用户和搜权普通用户和组都是在root权限下操作的。。

          

    以上对于运维人员来说操作即可完成,如果开发需要相关权限,请继续往下操作,但是每个公司需求不同,权限不同,请酌情授权。。


    6.给开发普通用户搜权

    [mao@mysql-db01 conf]$ su -  #切换回root用户进行搜权
    Password: 
    [root@mysql-db01 ~]# useradd kaifa -g maohome  ##建立属于开发的账户,并加入组
    [root@mysql-db01 ~]# id kaifa
    uid=514(kaifa) gid=515(maohome) groups=515(maohome)
    [root@mysql-db01 ~]# cd /application/tomcat/
    [root@mysql-db01 tomcat]# ll
    total 116
    -rw-r--r--. 1 mao maohome     0 Oct 13 03:03 1.txt
    drwxr-xr-x. 2 mao maohome  4096 Oct 13 02:47 bin
    drwxr-xr-x. 3 mao maohome  4096 Oct 13 06:42 conf
    drwxr-xr-x. 2 mao maohome  4096 Oct 13 03:03 data
    drwxr-xr-x. 2 mao maohome  4096 Sep 22 18:02 lib
    -rw-r--r--. 1 mao maohome 57011 Sep 28  2015 LICENSE
    drwxrwxr-x. 3 mao maohome  4096 Nov  6 16:22 logs
    -rw-r--r--. 1 mao maohome  1444 Sep 28  2015 NOTICE
    -rw-r--r--. 1 mao maohome  6741 Sep 28  2015 RELEASE-NOTES
    -rw-r--r--. 1 mao maohome 16204 Sep 28  2015 RUNNING.txt
    drwxr-xr-x. 2 mao maohome  4096 Sep 22 18:02 temp
    drwxr-xr-x. 2 mao maohome  4096 Oct 13 06:23 webapps
    drwxr-xr-x. 3 mao maohome  4096 Sep 22 18:35 work
    [root@mysql-db01 tomcat]# chmod g+w bin  data logs temp work    ##搜权组加上w权限。。
    [root@mysql-db01 tomcat]# ll
    total 116
    -rw-r--r--. 1 mao maohome     0 Oct 13 03:03 1.txt
    drwxrwxr-x. 2 mao maohome  4096 Oct 13 02:47 bin
    drwxr-xr-x. 3 mao maohome  4096 Oct 13 06:42 conf
    drwxrwxr-x. 2 mao maohome  4096 Oct 13 03:03 data
    drwxr-xr-x. 2 mao maohome  4096 Sep 22 18:02 lib
    -rw-r--r--. 1 mao maohome 57011 Sep 28  2015 LICENSE
    drwxrwxr-x. 3 mao maohome  4096 Nov  6 16:22 logs
    -rw-r--r--. 1 mao maohome  1444 Sep 28  2015 NOTICE
    -rw-r--r--. 1 mao maohome  6741 Sep 28  2015 RELEASE-NOTES
    -rw-r--r--. 1 mao maohome 16204 Sep 28  2015 RUNNING.txt
    drwxrwxr-x. 2 mao maohome  4096 Sep 22 18:02 temp
    drwxr-xr-x. 2 mao maohome  4096 Oct 13 06:23 webapps
    drwxrwxr-x. 3 mao maohome  4096 Sep 22 18:35 work
    [root@mysql-db01 tomcat]# 

             为什么只对以上目录授权,原因在于如果开发人员需要启动Tomcat时,需要写日志到logs目录中,需要有写权限;bin文件中放着Tomcat的启动,停止等相关的脚本,

    tomcat有一个work目录,里面存放了页面的缓存,访问的jsp都会编译;temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)但是,千万不能删除该目录,要不然就会带来未知的错误,如登录界面的验证码出不来等问题。。

          对于给开发人员授权,我们秉承着最小化的原则,如果不对Tomcat站点运行造成影响,尽量最小,安全最重要。。因为造成网站运行问题的一部分原因就是内部人员造成。

  • 相关阅读:
    关于Qt国产化系统开发的几点总结
    C#和Qt实现的对于异常处理的一个使用策略
    echarts 自定义省份区块颜色的两种方法
    获取某个文件下的.vue文件
    仿写单选框/多选框
    重置对象属性
    elementUI之树形数据Table遇到的问题
    sass使用记录
    koa的使用记录
    六顶思想帽
  • 原文地址:https://www.cnblogs.com/dadonggg/p/7797732.html
Copyright © 2020-2023  润新知