当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 用SHELL脚本怎样判断当前用户不为ROOT
帖子发表于 : 2005-10-04 17:31 

注册: 2005-09-28 13:32
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
不知怎样做,编写了就是不行

s=root

if [ s != `whoami` ]
then
echo $s
echo `whoami`
echo "The user is not root!"
fi


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2005-10-04 20:02 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10110
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 127
if [ !$USER = "root" ]; then
echo "$0 must run by sudo";
exit 1;
fi


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2005-10-05 1:21 
头像

注册: 2005-07-01 18:56
帖子: 887
地址: 广州市
送出感谢: 0 次
接收感谢: 3
if [ "`whoami`" != "root" ] ; then
echo "You must run $0 as root"
exit 1
fi


_________________
I will be back!


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-05-17 11:23 
头像

注册: 2007-04-06 10:24
帖子: 2487
地址: ~/Shanghai
送出感谢: 0 次
接收感谢: 0 次
if [ `id -u` != 0 ]; then
echo "You must be root to run this command."
exit 1
fi


_________________
http://silenceisdefeat.com/~greco
代码:
''.join([chr(ord(c)-2) for c in 'O{"G/ockn"ku<"itgeq0ujkBiockn0eqo'])
echo -n "Z3JlY28uc2hpQGdtYWlsLmNvbQ==" | base64 -d


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 用SHELL脚本怎样判断当前用户不为ROOT
帖子发表于 : 2007-05-17 19:22 
头像

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
songqing 写道:
不知怎样做,编写了就是不行

s=root

if [ s != `whoami` ]
~~~~~ "$s"
then
echo $s
echo `whoami`
echo "The user is not root!"
fi


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-06-25 14:59 

注册: 2007-05-31 10:26
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
呵呵,这个问题有意思啊,
我也写一个。
代码:
if [ $UID -gt 0 ] && [ “`id -un`" != "root" ]; then
echo "The user is not root!"
fi


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-06-25 16:07 
头像

注册: 2005-08-14 21:55
帖子: 58436
地址: 长沙
送出感谢: 4
接收感谢: 272
直接id取就是啊。


_________________
● 鸣学


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-07-02 17:27 
头像

注册: 2006-11-15 14:28
帖子: 67
地址: Beijing
送出感谢: 0 次
接收感谢: 3
这个问题的答案似乎有N种,哈哈,有兴趣的整理一个集合,看谁实现的方式最好玩。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-09-11 11:48 

注册: 2007-02-04 14:22
帖子: 44
送出感谢: 0 次
接收感谢: 0 次
经验证,如果考虑sudo的情况,使用$UID/$USER不太合适。

whoami / id 都会认为是root。但$UID/$USER还会是当前的用户。看来系统变量是不会因为使用sudo而变化的,必须切换回root才行。


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-09-23 0:15 
头像

注册: 2007-07-04 21:54
帖子: 88
送出感谢: 0 次
接收感谢: 0 次
ambitiousboy 写道:
经验证,如果考虑sudo的情况,使用$UID/$USER不太合适。

whoami / id 都会认为是root。但$UID/$USER还会是当前的用户。看来系统变量是不会因为使用sudo而变化的,必须切换回root才行。


root@atlas:/home/wen# ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 91508 2006-10-09 19:37 /usr/bin/sudo

sudo的作用就是伪装成root(注意到权限中user的运行位是s),一般来说没有必要区分sudoer和root,或者说不应该区分,否则会造成其他人的困惑。
一定要区分的话,恐怕只能分析ps命令的结果。


_________________
Study or die.


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译