让UNIX普通用户具备关机权限

系统 其他OS
在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操作系统中试验通过。

【编辑推荐】

  1. Unix系统安全中作为root运行的程式
  2. Linux/Unix操作系统处于内网的桌面控制
  3. Nagios监控Linux和Unix服务器-安装步骤
  4. 英特尔下一代安腾亮相 Unix市场竞争惨烈
  5. 热门:IBM DB2 for Linux, UNIX, and Windows

 

责任编辑:冯宇 来源: 博客园
相关推荐

2022-08-04 07:03:11

Linux配置命令

2010-01-05 10:13:57

Ubuntu普通用户市场

2011-12-12 17:07:43

2011-02-24 11:11:14

2010-02-23 16:49:40

CentOS tomc

2021-02-22 10:32:46

云计算云厂商SaaS

2013-10-12 15:45:30

2009-04-30 17:29:49

LinuxUbuntuScreen

2013-12-23 13:24:47

Linuxauthbind命令

2012-08-02 10:48:03

Windows 8操作系统

2023-05-13 09:09:54

AR谷歌

2015-07-29 11:31:25

2012-11-02 09:28:57

Windows Ser

2010-07-19 17:22:02

连接到Telnet服务

2009-03-28 09:40:32

Windows 7微软操作系统

2009-04-20 08:49:29

Windows 7微软操作系统

2017-11-01 13:34:33

2022-08-19 15:02:10

Linuxsu 命令

2018-10-16 09:10:02

宽带WiFi网络

2010-08-09 13:57:19

DB2 sql
点赞
收藏

51CTO技术栈公众号