笔者自己新增的一个xbgj用户用于其他操作员执行关机命令。但现在我想不允许在终端上登录此关机用户进行关机,而只能在主机上也即主控台中运行此用户进行关机,请问该怎样用shell语句实现此限制????

谢谢了!

sdccf 回复于:2004-08-30 08:16:49
console=`expr "$1" : '\(....\)'`
if [ $console = tty0 ]
then : okay
else echo "\n\n\t\t 必需从主控台运行关机程式"
exit
fi

-j- 回复于:2004-08-30 08:46:51
问个菜鸟问题:如何把vi的text文档转换成shell命令?

sdccf 回复于:2004-08-30 09:08:06
shell本来就是文本,还转换什么?

-j- 回复于:2004-08-30 09:26:12
系统会自动识别并且运行?

sdccf 回复于:2004-08-30 09:37:21
您输入的必须是shell命令才行。

simonzhan 回复于:2004-08-30 09:39:40
是的,只要语法正确并且赋予的运行权限。在第一行最好用
#!/bin/sh
来明确通知系统这是个bsh的脚本。建议可到shell版多看看。

ddddddeeeeeeffffff 回复于:2004-08-30 14:00:50
chmod 777 文档名,以后输入文档名可运行,root用户需用./文档名,
想要在系统启动时运行,进行/etc/rc2.d编辑S打头的文档即可。

legendfan 回复于:2004-08-30 21:13:17
怎么讨论起和此帖无关的内容来了?删除

hsgzr 回复于:2004-08-31 00:58:29
将文本文档加执行权即可执行

sdccf 回复于:2004-08-31 07:29:37
随便一个文本文档是不行的.

legendfan 回复于:2004-08-31 20:13:41
[quote:ec8014cf8d="sdccf"]e = tty0 ]
then : okay
else echo "\n\n\t\t 必需从主控台运行关机程式"
exit
fi[/quote:ec8014cf8d]


这个方法似乎不行的,我已试过了。有谁有更好的办法???

sdccf 回复于:2004-08-31 21:18:48
这个方法我测试过了,没有问题啊.

legendfan 回复于:2004-09-01 21:39:37
自己解决了!利用case语句加入程式体中进行判断即可,其实也是个比较笨的方法。现将程式简短贴出,大家一起学习。

console=`tty`
case $console in
/dev/tty0[1-9]|/dev/tty1[012]) echo "这里写入相应关机程式!"
*) echo "这里是不允许在终端进行关机的提示!"
esac


简单吧,但是也挺笨的,对吧??^_^