当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 让UNIX普通用户具备关机权限

Unix/Linux
使用yum把内核升级到Kernel 2.6.0test9
请问如何在vi中做到高亮显示?
Firefly 的Xft2 for Fedora下载安装
如何设置cygwin控制台字体高亮显示?
SWT(implemented with gtk)的可视化控件的X11窗口句柄
发现PUTTY的一个弱点
rh9.0的apache怎么没有htdoc这个文件夹啊
网络字节序的问题
linux filesystem 1TB limited?
防火墙iptables的一个有些难度的问题(虚心请教高手)
总结INIT :Id "2" respawing too fast :disable for 5
编译完内核让它支持ntfs之后,只需要make dep就可以吗?
在Virtual PC 5.2上配置Debian的网络
如何设置同一用户同一时间只能有一个人登陆啊??
讨论一下:mount 时会不会提示本地目录已经mount了一个了?
can't add this user?why?
有没有可能突破扩展分区上逻辑分区15个的限制?
1.网友文章:一Linux系统的入侵分析 (2002年6月11日)
Debian参考手册
提供在turbolinux7.0下安装拨号服务器的方法!

Unix/Linux 中的 让UNIX普通用户具备关机权限


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 42 ::
收藏到网摘: n/a


  在UNIX系统中,超级用户掌握着系统的所有权限,关机命令也是其中非常重要的一项权限。但在某些情况下,我们非常希望普通用户也能执行关机命令,而不具备其它的超级权限。
  
  为了使普通用户具备关机权限,我们需要创建一个专门进行关机的用户,将它的sh修改为我们指定的关机程序。具体操作如下:
  
  首先,我们在UNIX系统中正常建立一halt用户,在建立时我们可以设置该用户为无口令用户。然后,用 vi 编辑器修改 /etc/passwd 文件。将我们刚建立的 halt 用户一行的内容修改为:
  
  halt:x:0:1:/etc:/etc/halt
  
  即该用户具有超级用户权限,但是它的启动目录为/etc,执行的sh为我们指定的可执行程序/etc/halt,该执行文件的内容如下:
  
  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 "nnnnnn"
  
  setcolor red black
  
  echo " [ 普通用户关机程序 ] ** 警告** "
  
  setcolor yellow black
  
  echo "以下用户未退出系统无法自动关机。请选择关机方式:n"
  
  echo " 注册用户注册终端号"
  
  w -h | fgrep -v halt | awk ‘{print " " $1 " " $2}‘
  
  echo " nn "
  
  echo " 1: 中断关机程序。"

  
  echo " 2: 系统强行关闭计算机。(可能会造成数据丢失)nn"
  
  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 "nn 普通用户关机程序不能在终端上运行!!"
  
  esac
  
  exit
  
  将以上内容用vi编辑器编辑保存为 /etc/halt,并将该文件的权限修改为一般用户可读可执行即可。
  
  这样,一般用户只需在“Login:”状态下输入halt 用户名,即可实现系统的自动关闭。当然,若此时系统中有其它用户尚未退出,则会给出提示信息,而不会自动强行关闭系统。另外该关机用户在终端上不能关闭系统,这也提高了系统的安全性。该方法在SCO Open UNIX 5.0操作系统中试验通过。