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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章