利用脚本限制普通用户只能查看日志

因为公司的测试人员需要查看线上服务器的日志(一般情况下是即时日志),之前有部署ELK,后来因为某些原因出了点故障,现在懒得排查了,也懒得去教他们如何使用ELK,所以干脆搞个简单脚本让他们直接在服务器上查看日志,利用shell脚本,把这个普通用户的权限限死,除了我给出的查看日志功能,什么也做不了,因为脚本无法中断。

操作如下:

1、useradd log
2、echo 123456|passwd --stdin log
3、vim /home/zlfzy/sh/log.sh

#!/bin/bash

export LANG=zh_CN.UTF-8

trapper(){
    trap ':' INT EXIT TSTP TERM HUP    #<==屏蔽这些信号
}
main(){
while :
do
      trapper
      clear
      cat<<menu
       1) tail -F rmwebapp.log
       2) tail -F rmwebadmin.log
       3) tail -F catalina.out     #tomcat日志,刷新很快
       5) searsh rmwebapp.log
       6) search rmwebadmin.log
       7) searsh catalina.out
menu
read -p "Pls input a num.:" num
case "$num" in
    1)
        echo "tail -F rmwebapp.log"
        tailf /tomcat/logs/rmwebapp/log.log
        ;;
    2)
        echo "tail -F rmwebadmin.log"
        tailf /tomcat/logs/rmwebadmin/log.log
        ;;
    3) 
        tailf /tomcat/logs/catalina.out
        ;;
    5)
        vim /tomcat/logs/rmwebapp/log.log
        ;;
    6)
        vim /tomcat/logs/rmwebadmin/log.log
        ;;
    7) 
        vim /tomcat/logs/catalina.out
        ;;
    110)
        read -p "your birthday:" char
        if [ "$char" = "666" ];then        #设置一个退出脚本的密码,自己保存
          exit
          sleep 3
        fi
        ;;
    *)
        echo "select error."
        esac
done
}
main

4、id log 拿到log用户的UID
5、echo '[ $UID -eq $UID ] && . /home/zlfzy/sh/log.sh'>/etc/profile.d/log.sh
6、切换到log用户或者直接用log用户登录查看效果
如下:
TIM截图20170531164105.png

添加新评论