一、文件系統訪問列表
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 '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選項,則既顯示同時登錄的用戶數,又顯示登錄的用戶的相關信息。