一、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命令:
-
执行结果: