您的位置:首页 > 运维架构 > Linux

Linux环境下提升普通用户权限(sudo)

2014-04-11 09:45 316 查看
用sudo让普通用户获得超级用户的一部分权利,能够做超级用户才能做的事情,还能够对普通用户身份做一些限制,指定某一个或某几个人来做,并且普通用户不需要知道超级用户的密码,就能够完成超级用户才能完成的任务。

测试环境:管理员root和普通用户redhat

1.授权之前测试:

# /etc/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                              [  OK  ]

$ /etc/init.d/httpd restart
rm: cannot remove `/var/run/httpd.pid': Permission denied  [FAILED]
Starting httpd:
touch: cannot touch `/var/lock/subsys/httpd': Permission denied

3. 修改 /etc/sudoers

在 root ALL=(ALL) ALL 下面添加一行:
redhat ALL=(ALL) NOPASSWD:ALL

4.详解sudoers文件

root ALL=(ALL) ALL 默认为root用户定义好的
可分成4个字段来理解:
第一个字段指定的是用户,可以是用户名,也可以是别名。
第二个字段指定的是用户所在的主机,可以是ip,也可以是主机名,限制的一般都是本机,也就是限制使用这个文件的主机,如果指定为:192.168.1.88= 表示这个文件只有在这台主机上生效,如果拷贝到别的机子上是不起作用的,一般都指定为:ALL 表示所有的主机,不管文件拷到那里都可以用。
第三个字段括号里指定的也是用户,比如说 (tom,redhat) 可以是一个或多个,ALL 表示所有用户。
第四个字段指定的是执行的命令。

例如:
root ALL=(ALL) ALL              表示:root用户可以在这台主机上以所有人的身份去执行所有命令。
redhat ALL=(lake) /bin/ls       表示:redhat用户可以在这台主机上变成lake身份去执行ls。
[redhat@localhost ~]$ sudo -u lake ls ~lake       redhat以lake的身份查看lake的目录内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux