1. 程式人生 > >Linux初級運維(十一)——facl及使用者及Linux終端及case語句

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 '[email protected],@ @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 '[email protected],@ @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 '[email protected],@ @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