sudo -l 查看当前用户可以在sudo中执行的命令, 输出结果为正则表达式。
$sudo -l Matching Defaults entries for admin on this host: syslog=auth, timestamp_timeout=300, !set_logname User admin may run the following commands on this host: (ALL) NOPASSWD: ALL, (ALL) !/usr/bin/sudo*, !/bin/su*, /bin/su -c*, /bin/su [a-zA-Z0-9]*, !/bin/su *root*, (ALL) !/bin/sh, !/bin/ash, !/bin/bsh, !/bin/bash, !/bin/csh, !/bin/ksh, !/bin/rsh, !/bin/tcsh, !/bin/zsh, (ALL) /bin/sh [/~.a-zA-z0-9]*, /bin/sh -c*, /bin/ash [/~.a-zA-z0-9]*, /bin/ash -c*, /bin/bsh [/~.a-zA-z0-9]*, /bin/bsh -c*, /bin/bash [/~.a-zA-z0-9]*, /bin/bash -c*, /bin/csh [/~.a-zA-z0-9]*, /bin/csh -c*, /bin/ksh [/~.a-zA-z0-9]*, /bin/ksh -c*, /bin/rsh [/~.a-zA-z0-9]*, /bin/rsh -c*, /bin/tcsh [/~.a-zA-z0-9]*, /bin/tcsh -c*, /bin/zsh [/~.a-zA-z0-9]*, /bin/zsh -c*
sudo su admin 从当前用户直接进入admin用户, 不需要admin的密码。进入admin shell环境
sudo -u admin xxx 以admin用户执行xxx, 进程退出后仍然在当前用户环境下
su 切换到root,需要输入root密码
su - 切换到root,需要输入root密码,并且使用root的环境变量
su - admin 切换到admin,需要输入admin密码,并且使用admin的环境变量