歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix資訊

讓UNIX普通用戶具備關機權限

UNIX系統中,超級用戶掌握著系統的所有權限,關機命令也是其中非常重要的一項權限。但在某些情況下,我們非常希望普通用戶也能執行關機命令,而不具備其它的超級權限。

為了使普通用戶具備關機權限,我們需要創建一個專門進行關機的用戶,將它的sh修改為我們指定的關機程序。具體操作如下:

首先,我們在UNIX系統中正常建立一halt用戶,在建立時我們可以設置該用戶為無口令用戶。然後,用 vi 編輯器修改 /etc/passwd 文件。將我們剛建立的 halt 用戶一行的內容修改為:

halt:x:0:1:/etc:/etc/halt

即該用戶具有超級用戶權限,但是它的啟動目錄為/etc,執行的sh為我們指定的可執行程序/etc/halt,該執行文件的內容如下:

  1. HALT_TERMINAL=`tty`  
  2. case "$HALT_TERMINAL"  
  3. in  
  4. /dev/tty0[1-9]|/dev/tty1[012])  
  5. w-h | fgrep -v halt > /dev/null  
  6. if [ $? = 0 ]  
  7. then  
  8. clear  
  9. echo "\n\n\n\n\n\n"  
  10. setcolor red black  
  11. echo " [ 普通用戶關機程序 ] ** 警告** "  
  12. setcolor yellow black  
  13. echo "以下用戶未退出系統無法自動關機。請選擇關機方式:\n"  
  14. echo " 注冊用戶注冊終端號"  
  15. w -h | fgrep -v halt | awk '{print " " $1 " " $2}'  
  16. echo " \n\n "  
  17. echo " 1: 中斷關機程序。"  
  18. echo " 2: 系統強行關閉計算機。(可能會造成數據丟失)\n\n"  
  19. while true  
  20. do  
  21. echo -n " 請選擇:"  
  22. read select  
  23. if test"$select"= 1  
  24. then  
  25. setcolor white black  
  26. clear  
  27. exit 1  
  28. else  
  29. if test "$select"=2  
  30. then  
  31. setcolor white black  
  32. /etc/haltsys  
  33. fi  
  34. fi  
  35. done  
  36. else  
  37. cd /usr/tmp  
  38. rm -f *  
  39. cd  
  40. /etc/haltsys  
  41. fi  
  42. echo "\n\n 普通用戶關機程序不能在終端上運行!!"  
  43. esac  
  44. exit 

將以上內容用vi編輯器編輯保存為 /etc/halt,並將該文件的權限修改為一般用戶可讀可執行即可。

這樣,一般用戶只需在“Login:”狀態下輸入halt 用戶名,即可實現系統的自動關閉。當然,若此時系統中有其它用戶尚未退出,則會給出提示信息,而不會自動強行關閉系統。另外該關機用戶在終端上不能關閉系統,這也提高了系統的安全性。該方法在SCO Open UNIX 5.0操作系統中試驗通過。

Copyright © Linux教程網 All Rights Reserved