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個隨機數,然後顯示這十個隨機數中的最大值和最小值:
三、終端型別
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
練習:
只接受引數 start,stop, restart,status其中之一
練習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選項,則既顯示同時登入的使用者數,又顯示登入的使用者的相關資訊。