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

2008-02-23 05:31:15来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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




标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 用硬盘备份UNIX系统的数据(1)

下一篇: 如何自动杀死UNIX僵死的进程

热门词条
热门标签