一、su --run a shell with substitute user and group IDs
- -,-l,--login
make the shell a login shell, clears all envvars except forTERM, initializes HOME, SHELL, USER, LOGNAME and PATH
带-参数和不带-参数切换用户示例:
-
-c, --command=COMMAND
pass a single COMMAND to the shell with -c 以指定用户执行某个命令
应用示例:
#####分用户启动服务#####
su - test -c '/bin/sh /home/test/bin/deploy.sh'
- su命令为管理Linux系统带来了很多方便,同时有很大的安全管理问题。我们希望多个系统管理员能够完成更过更复杂的系统管理工作,而又不使超级权限泛滥,需要sudu命令替代或者结合su命令实现这样苛刻且必要的管理需求。
二、sudo
- sudu执行流程:
- sudo配置文件 /etc/sudoers 用visudo编辑
- sudo提权配置说明:
用户或组 | 机器=(授权角色) | 可以执行的命令 |
user | MACHIE= | COMMANDS |
test | ALL=(ALL) | /user/sbin/useradd,/user/sbin/userdel |
- 说明:如果test用户被授予上述权限,那么它可以在所有机器上以所有角色运行useradd、userdel命令
- 举例:
-
- 编辑visudo :
-
- 切换test用户执行sudo命令:
-
- 执行结果:
三、sudo 配置文件 /etc/sudoers 注意事项
- 授权规则中所有的字符串ALL 必须大写
- Cmnd_Alias USERMAND=/usr/sbin/useadd,/usr/sbin/userdel,\
!/usr/bin/passwd,/usr/bin/passwd[A-Za-z]*,
禁止的命令尽量放后面
- 一行内容超长可以用“\”斜线换行。