[转帖]让UNIX普通用户具备关机权限_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3251 | 回复: 0   主题: [转帖]让UNIX普通用户具备关机权限        下一篇 
赖文婷
注册用户
等级:少校
经验:1094
发帖:81
精华:0
注册:2012-11-5
状态:离线
发送短消息息给赖文婷 加好友    发送短消息息给赖文婷 发消息
发表于: IP:您无权察看 2012-11-12 14:54:59 | [全部帖] [楼主帖] 楼主

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




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论