用户授权方式
如果普通用户需要执行特殊操作,有两种方法
1:su - root,切换到root执行特殊操作,然后在返回到普通用户
2:sudo
sudo
表示 “superuser do”
sudo 命令与安全策略配合使用,默认安全策略是 sudoers
可以通过文件 /etc/sudoers 来配置
su(switch user)
优点:使用简单
缺点:
1: root密码容易泄露,通常需要的是root密码
2:普通用户可执行的操作不可控
su 跟su - 的区别
单纯的su切换到root,使用的是non-login shell,很多的环境变量可能没变
su - 这样的方式的话,是login shell方式,它是先以root身份登录然后再运行别的操作
切换到root执行一次操作,su -c 执行完毕会退出
[dev@sz-stage-maj-level1 ~]$ su
Password: #输入root用户的密码
[root@sz-stage-maj-level1 dev]# pwd //路径没有变化,原用户家目录
/home/dev
[root@sz-stage-maj-level1 dev]#
[root@sz-stage-maj-level1 dev]# echo $PATH #原用户环境变量
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dev/.local/bin:/home/dev/bin
[root@sz-stage-maj-level1 dev]# exit #显示为exit
exit
[dev@sz-stage-maj-level1 ~]$ su - #root密码
Password:
Last login: Mon May 13 11:23:54 CST 2019 on pts/0
[root@sz-stage-maj-level1 ~]# pwd #root目录
/root
[root@sz-stage-maj-level1 ~]# echo $PATH #root的环境变量
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@sz-stage-maj-level1 ~]# exit #显示为logout
logout
sudo的配置文件
-
配置文件: /etc/sudoers
-
格式: 用户名 主机=(切换的用户) 可执行的命令
说明: -
用户名:普通用户的名称
-
主机:可以在哪个主机上执行特定的命令
ALL 表示任意主机 localhost 表示当前主机 hostName 表示具体的主机名 x.x.x.x 表示一个IP地址(192.168.6.123) x.x.x.x/netmask 表示一个网段(192.168.6.0/24)
-
切换的用户:切换到指定的用户来执行后面的命令,通常的都是root用户
表示方式,有以下三种 (ALL) (root) 空
-
可执行的命令:用户可以执行命令
格式:命令1,命令2,.... 补充:可以用通配符的方式 /sbin/*
举例
给yangdi7 赋权,让这个用户可以在任意主机切换到root用户执行useradd命令
yangdi7 ALL=(ALL) /usr/sbin/useradd
注意
- 使用visudo来修改sudo配置文件,如果你修改的配置文件有错误,那么系统会提示有错,并且阻止保存
- 修改sudo的配置文件,通常不用vi,而是用visudo命令