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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 30 ::
收藏到网摘: 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 "\n\n\n\n\n\n"

  setcolor red black

  echo " [ 普通用户关机程序 ] ** 警告** "

  setcolor yellow black

  echo "以下用户未退出系统无法自动关机。请选择关机方式:\n"

  echo " 注册用户注册终端号"

  w -h | fgrep -v halt | awk '{print " " $1 " " $2}'

  echo " \n\n "

  echo " 1: 中断关机程序。"

  echo " 2: 系统强行关闭计算机。(可能会造成数据丢失)\n\n"

  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 "\n\n 普通用户关机程序不能在终端上运行!!"

  esac

  exit

  将以上内容用vi编辑器编辑保存为 /etc/halt,并将该文件的权限修改为一般用户可读可执行即可。

  这样,一般用户只需在“Login:”状态下输入halt 用户名,即可实现系统的自动关闭。当然,若此时系统中有其它用户尚未退出,则会给出提示信息,而不会自动强行关闭系统。另外该关机用户在终端上不能关闭系统,这也提高了系统的安全性。该方法在SCO Open UNIX 5.0操作系统中试验通过。