Unix系統(tǒng)中知識(shí)講解
在使用了很久的Unix系統(tǒng)后,我們應(yīng)該知道在Unix系統(tǒng)中,超級(jí)用戶掌握著系統(tǒng)的所有權(quán)限。但在某些情況下,我們希望普通用戶也能執(zhí)行關(guān)機(jī)命令,而不具備其它的超級(jí)權(quán)限。
為了使普通用戶具備關(guān)機(jī)權(quán)限,我們需要?jiǎng)?chuàng)建一個(gè)專門進(jìn)行關(guān)機(jī)的用戶,將它的sh修改為我們指定的關(guān)機(jī)程序。具體操作如下:
首先,我們?cè)赨nix系統(tǒng)中正常建立一halt用戶,在建立時(shí)我們可以設(shè)置該用戶為無口令用戶。然后,用 vi 編輯器修改 /etc/passwd 文件。將我們剛建立的 halt 用戶一行的內(nèi)容修改為:
halt:0:1:/etc:/etc/halt
即該用戶具有超級(jí)用戶權(quán)限,但是它的啟動(dòng)目錄為/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)機(jī)程序 ] ** 警告** "
 - setcolor yellow black
 - echo "以下用戶未退出Unix系統(tǒng)無法自動(dòng)關(guān)機(jī)。請(qǐng)選擇關(guān)機(jī)方式:\n"
 - echo " 注冊(cè)用戶注冊(cè)終端號(hào)"
 - w -h | fgrep -v halt | awk '{print " " $1 " " $2}'
 - echo " \n\n "
 - echo " 1: 中斷關(guān)機(jī)程序。"
 - echo " 2: 系統(tǒng)強(qiáng)行關(guān)閉計(jì)算機(jī)。(可能會(huì)造成數(shù)據(jù)丟失)\n\n"
 - while true
 - do
 - echo -n " 請(qǐng)選擇:"
 - 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)機(jī)程序不能在終端上運(yùn)行??!"
 - esac
 - exit
 
將以上內(nèi)容用vi編輯器編輯保存為 /etc/halt,并將該文件的權(quán)限修改為一般用戶可讀可執(zhí)行即可。
這樣,一般用戶只需在“Login:”狀態(tài)下輸入halt 用戶名,即可實(shí)現(xiàn)系統(tǒng)的自動(dòng)關(guān)閉。當(dāng)然,若此時(shí)系統(tǒng)中有其它用戶尚未退出,則會(huì)給出提示信息,而不會(huì)自動(dòng)強(qiáng)行關(guān)閉Unix系統(tǒng)。另外該關(guān)機(jī)用戶在終端上不能關(guān)閉系統(tǒng),這也提高了Unix系統(tǒng)的安全性。
【編輯推薦】















 
 
 
 
 
 
 