Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103739027
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-24 21:54:08

作者: 宇文 出处:51CTO.com 
 

五、运行Sudo

我们已经配置sudo,让它给予用户bob以超级用户权限来执行ifconfig、kill和ls命令。当bob 要运行这些命令时,他必须键入sudo 命令,并输入其口令。

⒈ 首先作为用户bob登录。

⒉ 找出bob可以作为root用户执行的命令,为此,键入以下命令:

sudo –l

⒊ 如果第一次以用户bob的身份运行sudo 的话,会给出一个警告:

We trust you have received the usual lecture from the local System Administrator.
It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type
#3) With great power comes great responsibility

⒋ 提示您输入口令,注意,不要输入root用户的口令,而是bob的口令。

Password:

⒌ 将列出允许bob在这个主机上运行的各个命令,如下所示:

User bob may run the following commands on this host:

(root)  /sbin/ifconfig
(root)  /bin/lill
(root)  /bin/ls

⒍ 运行ifconfig 来测试我们sudo的配置情况。如果不用sudo 的话,该选项需要root权限。命令如下所示:

/sbin/ifconfig eth0 down

该命令无效,因为bob无权停用系统的连接设备。

⒎ 为了停用该连接设备,bob 必须使用sudo ,命令如下所示:

sudo /sbin/ifconfig eth0 down

这次将会成功执行。请注意,如果bob 的票据已经过期(默认有效期为五分钟)的话,sudo会要求输入bob的口令。 如果我们在票据的有效期内运行这个命令的话,系统不会提示我们键入口令。

⒏ 用以下命令来重新激活该连接设备:

sudo /sbin/ifconfig eth0 up

⒐ 然后,利用kill命令重新启动httpd 进程,具体如下所示:

ps aux | grep httpd

⒑ 从显示的列表中选择一个Apache PID ;如果没有安装Apache 的话,也可以选择启动其他的服务进程。命令如下:

kill –HUP [PID NUMBER]

⒒ 它是不会让你重启httpd进程的,因为你不是root用户。所以会收到如下信息:

bash: kill: (PID NUMBER) – Not owner

⒓ 现在,我们改为使用sudo作为root用户来运行该命令,具体如下所示:

sudo kill –HUP (PID NUMBER)

这回成功了。

⒔ 接下来,我们以用户bob的身份利用ls 命令来显示root目录。命令如下所示:

ls /root

结果我们被拒绝了,因为我们不是root用户。

⒕ 好了,现在我们使用sudo作为root用户执行该命令,看看结果如何:

sudo ls /root

看到了吧,我们的请求被执行了。root用户的目录已经列出来了。

⒖ 为了使bob的时间戳过期,可以通过sudo –k命令来达此目的。这样一来,bob 下一次使用sudo时就必须再次输入口令。

阅读(293) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~