sudo授权管理

在Linux的管理中,不是每一个系统管理员都能用root来管理服务器

su的优缺点

平时使用普通用户管理操作系统,降低误操作几率,需要时su切换到root。

su用户身份的切换,普通管理员要使用root的权限必须知道root的密码,这样会造成很多普通用户需要知道root的密码,导致系统的安全性降低。

sudo可以为普通用户赋予一定权限,使普通用户能使用一些root才能执行的命令和操作,来完成正常的服务器管理工作。这种按需分配权限的方式可以让我们

工作在一个相对安全的环境下,并且普通用户不需要知道root的密码。

Sudo工作步骤:

  1. 通过visudo命令或者vim /etc/sudoers 来对某用户授权
  2. 当普通用户执行/sbin或/usr/sbin下的命令时,系统会查询/etc/sudoers文件中是否有root对其的授权
  3. 当查询普通用户已拥有授权后,需要输入普通用户的密码来确认用户身份
  4. 若密码输入成功后,则执行对应已经授权的命令

Sudo工作步骤:

  1. 通过visudo命令或者vim /etc/sudoers 来对某用户授权
  2. 当普通用户执行/sbin或/usr/sbin下的命令时,系统会查询/etc/sudoers文件中是否有root对其的授权
  3. 当查询普通用户已拥有授权后,需要输入普通用户的密码来确认用户身份
  4. 若密码输入成功后,则执行对应已经授权的命令

授权:

visudo 和 /etc/sudoers

/etc/sudoers文件内有固定语法结构,使用其它文档编辑器可能会造成配置文件出现错误,所以尽量使用visudo命令打开配置文件

[root@lchuan test]# visudo

图片中root ALL=(ALL) ALL每一个元素的含义:

v root:系统的哪个用户能使用sudo 命令,即被授权者。

也可以是组,组要在前面加%表示,参考上图 ↑

v ALL :可以被管理的服务器的网络地址,写自己或ALL代表任何来源地址都可以管理本台服务器。

v ALL :能够切换的用户身份,默认是任意用户,其实没多大意义

v ALL :可以使用什么命令,多条命令用,隔开(必须写绝对路径)

 

例1:给admin用户赋予root所有命令权限

admin ALL=(ALL) ALL

例2:授权zhangsan用户可以重启服务器

zhangsan  ALL=(root) /sbin/shutdown –r now

例3:授权web用户可以管理IP:192.168.110.39的web服务器

v NO.1:可以使用Apache管理脚本

web 192.168.110.39=(root)  /etc/rc.d/init.d/httpd reload,/etc/rc.d/init.d/httpd configtest

# reload 重新加载配置文件使之生效;configtest 检查配置文件是否有语法错误。

v NO.2:可以修改Apache的配置文件

web 192.168.110.39=(root) /bin/vi /etc/httpd/conf/httpd.conf

#sudo不仅仅能授权超级管理员的命令,还能授权普通命令以及详细选项和参数。

v NO.3:可以更新网页文件

#设置合理权限即可(w),可以通过给/var/www/html目录设置ACL权限,让web用户对/var/www/html有些权限即可。

例4:授权add用户可添加普通用户并能修改密码

add ALL=/usr/sbin/useradd

#让add用户可以添加普通用户

add  ALL=(root)  /usr/bin/passwd,!/usr/bin/passwd root,!/usr/bin/passwd “”

#让add用户可以给新添加用户修改密码,不允许修改root用户的密码

猜你喜欢

转载自www.cnblogs.com/jiangmeiyue/p/10230899.html