如何让用户不能用ctrl+c退出一个脚本?
经过这几天斑竹和vimchina的帮助,我写了一个脚本,这个脚本要让其他用户用root权限去执行。现在我想知道,怎样才能让其他用户执行期间不让我这个脚本可以用ctrl+c退出?
所以我需要一个真正安全的菜单系统。 if[ `whoami` != "root" ]
trap "" 2
fi BOoRFGOnZ, 这一串加到我脚本中的什么位置呢?
另外,加上这个以后我怎么调试呢? aa()
{ if [ `whoami` = "root" ]
exit 2
else
:
fi
}
trap aa 2
放那里都可以
对全局作用 BOoRFGOnZ, 对不起啊,我还是没有弄明白
我用root运行这个脚本,整个脚本写在一个aa()里面else部分,trap来执行aa
但是aa的第一步就是判断是不是root,如果是就退出了,那我的脚本根本就不会执行啊 你搞错了
!!!!!!!!!!!!!
冒号 不是让你把你的程序放到后面的!
把
aa()
{ if [ `whoami` = "root" ]
exit 2
else
:
fi
}
trap aa 2
整体放到你的代码前面 小弟不才,大哥见笑了。
可是
aa()
{
if [ `whoami` = "root" ]; then
exit 2
else
:
fi
}
trap aa 2
echo Please Input
read UINFO
echo $UINFO
当我在输入UINFO的时候ctrl+C就出去了 如果是root用户 就出去
别的 不出去的 哦,我懂了,是防止其他用户出去的……
你看我现在的情况是这样的
我有一个root,有一个atfa,atfa和root的uid都是0,也就是说atfa和root是一个用户
我要用atfa来执行一个脚本,因为必须要root权限,但是又不能直接给root的用户
所以采用uid相同的办法
现在不允许atfa用ctrl c退出来,就用你的方法可以吧?
Re: 如何让用户不能用ctrl+c退出一个脚本?
经过这几天斑竹和vimchina的帮助,我写了一个脚本,这个脚本要让其他用户用root权限去执行。现在我想知道,怎样才能让其他用户执行期间不让我这个脚本可以用ctrl+c退出?
所以我需要一个真正安全的菜单系统。
是这个意思吗? 的确是其他用户,但是我的用户说的是“人”不是“accuont” :( sorry,我没有表达清楚
也就是说,不管什么用户,都只能用菜单里面的EXIT选项(exit 0)退出才行
当我调试好了以后
就要把退出的选项删除掉……让那个叫做atfa的帐号一登录就执行我的脚本,无法退出到命令提示符,要退出的话必须关掉远程登陆窗口,保证安全。 我同事是这样做的(aix的机器):
直接在脚本最后加一个
trap "" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 19
但是我在linux上没有成功。 根据你的要求
哦,我懂了,是防止其他用户出去的……
你看我现在的情况是这样的
我有一个root,有一个atfa,atfa和root的uid都是0,也就是说atfa和root是一个用户
我要用atfa来执行一个脚本,因为必须要root权限,但是又不能直接给root的用户
所以采用uid相同的办法
现在不允许atfa用ctrl c退出来,就用你的方法可以吧?
不好意思吃饭去了看看这个
如下
aa()
{ username=`whoami`
grep ":0:0:" /etc/passwd | awk -F: '{print $1}' | grep "$username" > /dev/null
if [ $? = 0 ] ;then
exit 2
else
:
fi
}
trap aa 2
除了uid=0的用户以外 不可以使用ctrl + c终止程序! 经过测试…………
只要在整个脚本最开始加一行:
trap "" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
就可以保证整个脚本,以及执行的子进程都不会被ctrl-c退出,包括root用户都一样。
Linux和AIX下测试通过…… 。。这个代码就是说对所有的信号不响应。。
页:
[1]
2