讓UNIX普通用戶具備關(guān)機權(quán)限
UNIX系統(tǒng)中,超級用戶掌握著系統(tǒng)的所有權(quán)限,關(guān)機命令也是其中非常重要的一項權(quán)限。但在某些情況下,我們非常希望普通用戶也能執(zhí)行關(guān)機命令,而不具備其它的超級權(quán)限。
為了使普通用戶具備關(guān)機權(quán)限,我們需要創(chuàng)建一個專門進行關(guān)機的用戶,將它的sh修改為我們指定的關(guān)機程序。具體操作如下:
首先,我們在UNIX系統(tǒng)中正常建立一halt用戶,在建立時我們可以設(shè)置該用戶為無口令用戶。然后,用 vi 編輯器修改 /etc/passwd 文件。將我們剛建立的 halt 用戶一行的內(nèi)容修改為:
halt:x:0:1:/etc:/etc/halt
即該用戶具有超級用戶權(quán)限,但是它的啟動目錄為/etc,執(zhí)行的sh為我們指定的可執(zhí)行程序/etc/halt,該執(zhí)行文件的內(nèi)容如下:
- HALT_TERMINAL=`tty`
- case "$HALT_TERMINAL"
- in
- /dev/tty0[1-9]|/dev/tty1[012])
- w-h | fgrep -v halt > /dev/null
- if [ $? = 0 ]
- then
- clear
- echo "\n\n\n\n\n\n"
- setcolor red black
- echo " [ 普通用戶關(guān)機程序 ] ** 警告** "
- setcolor yellow black
- echo "以下用戶未退出系統(tǒng)無法自動關(guān)機。請選擇關(guān)機方式:\n"
- echo " 注冊用戶注冊終端號"
- w -h | fgrep -v halt | awk '{print " " $1 " " $2}'
- echo " \n\n "
- echo " 1: 中斷關(guān)機程序。"
- echo " 2: 系統(tǒng)強行關(guān)閉計算機。(可能會造成數(shù)據(jù)丟失)\n\n"
- while true
- do
- echo -n " 請選擇:"
- read select
- if test"$select"= 1
- then
- setcolor white black
- clear
- exit 1
- else
- if test "$select"=2
- then
- setcolor white black
- /etc/haltsys
- fi
- fi
- done
- else
- cd /usr/tmp
- rm -f *
- cd
- /etc/haltsys
- fi
- echo "\n\n 普通用戶關(guān)機程序不能在終端上運行!!"
- esac
- exit
將以上內(nèi)容用vi編輯器編輯保存為 /etc/halt,并將該文件的權(quán)限修改為一般用戶可讀可執(zhí)行即可。
這樣,一般用戶只需在“Login:”狀態(tài)下輸入halt 用戶名,即可實現(xiàn)系統(tǒng)的自動關(guān)閉。當(dāng)然,若此時系統(tǒng)中有其它用戶尚未退出,則會給出提示信息,而不會自動強行關(guān)閉系統(tǒng)。另外該關(guān)機用戶在終端上不能關(guān)閉系統(tǒng),這也提高了系統(tǒng)的安全性。該方法在SCO Open UNIX 5.0操作系統(tǒng)中試驗通過。
【編輯推薦】
- Unix系統(tǒng)安全中作為root運行的程式
- Linux/Unix操作系統(tǒng)處于內(nèi)網(wǎng)的桌面控制
- Nagios監(jiān)控Linux和Unix服務(wù)器-安裝步驟
- 英特爾下一代安騰亮相 Unix市場競爭慘烈
- 熱門:IBM DB2 for Linux, UNIX, and Windows