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

来源:互联网 发布:分析数据的统计处理 编辑:程序博客网 时间:2024/05/22 06:58

用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个字段来理解:
  1. 第一个字段指定的是用户,可以是用户名,也可以是别名。
  2. 第二个字段指定的是用户所在的主机,可以是ip,也可以是主机名,限制的一般都是本机,也就是限制使用这个文件的主机,如果指定为:192.168.1.88= 表示这个文件只有在这台主机上生效,如果拷贝到别的机子上是不起作用的,一般都指定为:ALL 表示所有的主机,不管文件拷到那里都可以用。
  3. 第三个字段括号里指定的也是用户,比如说 (tom,redhat) 可以是一个或多个,ALL 表示所有用户。
  4. 第四个字段指定的是执行的命令。
例如:
root ALL=(ALL) ALL              表示:root用户可以在这台主机上以所有人的身份去执行所有命令。redhat ALL=(lake) /bin/ls       表示:redhat用户可以在这台主机上变成lake身份去执行ls。[redhat@localhost ~]$ sudo -u lake ls ~lake       redhat以lake的身份查看lake的目录内容



0 0