GZICP.com   
 
    返回首页
    联系我们
 
 
     

让普通用户具备关机权限

www.gzicp.com   2004年7月3日 12:05:32
 

  在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 \" \" \" \" }‘ 
  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操作系统中试验通过。
 

 焦赞康

相关文章
·关机管理(2004年07月03日)
·Solaris系统的启动和关机(2004年07月03日)
·Linux关机命令详解(2004年07月03日)
·Linux系统初始化过程解析(2004年07月03日)
最新文章
·使用虚拟内存文件系统和绑定安装  (2005年03月18日)
·使用ReiserFS和Linux 2.4  (2005年03月18日)
·日志和ReiserFS  (2005年03月18日)
·管理日志文件工具logrotate简介  (2005年03月16日)
·什么是syslogd  (2005年03月16日)
·使用负载均衡技术建设高负载的网络站点  (2004年09月19日)





 
 
Copyright © 1999-2008 GZICP.com All Rights Reserved