Linux初级运维(十一)——facl及用户及Linux终端及case语句

一、文件系统访问列表

    FACL :Filesystem Access Control List    文件系统访问列表

     利用文件扩展保存额外的访问控制权限。

        setfacl: -m:设定访问控制权限  ( u:UID:perm     g:GID:perm)    -x:取消访问控制权限

        getfacl:

二、用户的几个命令

        w

        who:显示登录到当前系统的用户有哪些

        whoami

        last :显示/var/log/wtmp文件,显示用户登录历史及系统重启历史。

                -n #:显示最近#次的相关信息。

        lastb:/var/log/btmp 文件,显示用户错误的登录尝试

                -n #:

        lastlog:显示每一个用户最近一次的成功登录信息。

                -u USERNAME:显示某个指定用户的最近登录信息

        basename :

                $0 :执行脚本时的脚本路径及名称

        mail:

        生成随机数:  RANDOM  0-32768

            内置的环境变量

          随机数生成器:   /dev/random     /dev/urandom  

        生成10个随机数,然后显示这十个随机数中的最大值和最小值:

        image.png

三、终端类型

        console:控制台

        pty:物理终端 (VGA卡连接)

        tty#:虚拟终端 (VGA卡连接)

        ttyS#:串行终端

        pts/# :伪终端

shell:

四、面向过程

        面向过程的控制结构:

            顺序结构

            选择结构

            循环结构

    1、选择结构:

        if:单分支、双分支、多分支

      (1)单分支
         if CONDITION;then

            statement

            ...

        fi

        (2) 双分支

        if CONDITION;then

            statement

            ...

        else

            statement

            ...

        fi

        (3)多分支

            if CONDITION1;then

                statement

                ...

            elif CONDITION2;then

                statement

                ...

            else

                 statement

                  ....

            if

    2、case语句

        case语句:选择结构

        case SWITCH in

        value1)

            statement

            ...

            ;;

         value2)

            statement

            ...

            ;;

        value3)

            statement

                ...

                ;;

        *)

            statement

            ...

            ;;

        esac

        image.png

练习:

    只接受参数 start,stop, restart,status其中之一

     image.png  

    练习2:

       写一个脚本,可以接受选项及参数,而后能获取每一个选项,及选项的参数;并能根据选项及参数做出特定的操作。比如:

        adminusers.sh --add tom,jerry --del tom,jerry -v|--verbose -h|--help

        



  1 #! /bin/bash

  2 #

  3 DEBUG=0

  4 ADD=0

  5 DEL=0

  6 

  7 for I in `seq 1 $#`; do

  8 case $1 in

  9 -v|--verbose)

 10   DEBUG=1

 11   shift;;

 12 -h|--help)

 13   echo "Usage:`basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"

 14   exit 0

 15   ;;

 16 --add)

 17   ADD=1

 18   ADDUSERS=$2

 19   shift 2

 20   ;;

 21 --del)

 22   DEL=1

 23   DELUSERS=$2

 24   shift 2

 25   ;;

 26 #*)

 27 #  echo "Usage:'basename $0' --add USER_LIST --del USER_LIST -v|--verbose -h|help"

 28 #  exit 7

 29 #  ;;

 30 esac

 31 done

 32 

 33 if [ $ADD -eq 1 ]; then

 34   for USER in `echo $ADDUSERS | sed 's@,@ @g'`; do

 35     if id $USER &> /dev/null; then

 36       [ $DEBUG -eq 1 ] && echo "$USER exists."

 26 #*)

 27 #  echo "Usage:'basename $0' --add USER_LIST --del USER_LIST -v|--verbose -h|help"

 28 #  exit 7

 29 #  ;;

 30 esac

 31 done

 32 

 33 if [ $ADD -eq 1 ]; then

 34   for USER in `echo $ADDUSERS | sed 's@,@ @g'`; do

 35     if id $USER &> /dev/null; then

 36       [ $DEBUG -eq 1 ] && echo "$USER exists."

 37     else

 38       useradd $USER

 39       [ $DEBUG -eq 1 ] && echo "Add user $USER finished."

 40     fi

 41   done

 42 fi

 43 

 44 if [ $DEL -eq 1 ]; then

 45   for USER in `echo $ADDUSERS | sed 's@,@ @g'`;do

 46     if id $USER &> /dev/null; then

 47       userdel -r $USER

 48       [ $DEBUG -eq 1 ] && echo "Delete $USER finished."

 49     else

 50       [ $DEBUG -eq 1 ] && echo "$USER not exist."

 51     fi

 52   done

 53 fi


练习3、写一个脚本showlogged.sh ,其用法格式为:

        showlogged.sh -v -c -h | --help

    其中,-h 选项只能单独使用,用于显示帮助信息; -c选项时,显示当前系统上登录的所有用户数;如果同时使用了 -v选项,则既显示同时登录的用户数,又显示登录的用户的相关信息。

        image.png


        image.png

猜你喜欢

转载自blog.51cto.com/5001660/2316938
今日推荐