linux命令详解(12)root权限,获得超级用户权限

2014-12-7 17:29:00     17 人阅读    

      打开shell后,即可根据所在用户/组ID和设定的权限运行命令,访问文件和目录。大量系统特性仅限root用户(root user,又称超级用户,super user)使用。
使用su命令
在普通用户打开的shell里,用su命令(super user,超级用户)可以切换至root用户。不过,直接使用su登录的shell并不具备root用户环境,如下所示:
$ su
Password:*****

# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin
:/home/fcaen/bin
运行su后,root用户仍使用fcaen的PATH。su命令加上短划线(-)选项即可启用root用户的环境,示例如下:
# exit
$ su -
Password: *****
# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/
usr/sbin:/usr/bin:/root/bin
如无非常特殊的理由,大部分场合都应使用su -。未指定用户时,su默认切换到root用户。当然,su也能切换到其他用户:
$ su - cnegus
su命令还能以某个用户的权限执行单个命令:
$ su -c whoami
Password: ******
root
# su -c ‘less /var/log/messages’
在第一个示例中,登录的普通用户使用su -c运行whoami时,命令行显示其为root用户。在第二个示例中,less命令行必须用单引号括起来,以示/var/log/messages为less的选项。如上所示,whoami可以用来确定运行命令的当前用户:
$ whoami
fcaen
使用sudo授权
sudo命令可以向非root用户进行细粒度的授权。如果要向多个用户授予特定的更高特权,并记录这些用户利用特权所做的一切,sudo工具无疑是上佳之选。如无特别说明,sudo都以root权限运行。
sudo命令的配置见/etc/sudoers文件。
警告! 千万不要用普通文本编辑器编辑这个文件,务请使用visudo命令。

发行版自带的sudoers文件会包含几段注释,其中只有一句起作用:
root    ALL=(ALL) ALL
这表明用户root能在任意主机上以任意用户运行任意命令。首先,将下面这行设置添加到sudoers文件里,其中第一个字段需改成实际系统中的用户帐户:
fcaen ALL= /usr/bin/less /var/log/messages
随后,fcaen(或者你添加的用户)就能执行如下命令行:
$ sudo /usr/bin/less /var/log/messages
Password:
用户fcaen键入自己的密码,即可分页查看/var/log/messages文件。执行该命令时系统会设定一个时戳,其后五分钟内(默认设置),用户执行上述命令行无需再输入密码。
sudo的每次使用都会记录在/var/log/secure文件里:
Feb 24 21:58:57 localhost sudo: fcaen : TTY=pts/3 ; PWD=/home/fcaen ; USER=root
; COMMAND=/usr/bin/less /var/log/messages
接下来,将下面这行添加到/etc/sudoers文件中:
fcaen        server1=(chris)     /bin/ls /home/chris
随后fcaen便能运行如下命令行:
$ sudo -u chris /bin/ls /home/chris
上面的sudo以chris用户运行命令,并且仅在主机server1上有效。有些机构集中管理/etc/sudoers文件并将其部署到所有主机上,因此将sudo权限限制在特定主机大有用处。
sudo命令还能定义别名,预设包含用户、命令和主机的组别,相关示例可参看Linux系统自带的/etc/sudoers文件。

本文是作者在读取《linux命令详解手册》之后的随手笔记,如果大家喜欢这本书,可以去购买


原文地址:http://www.itmmd.com/201412/272.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

linux命令详解(13)环境变量配置和使用   上一篇
下一篇  android学习笔记(12)android表格布局

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!