切换用户

2016-05-20 0 By admin

切换用户(SwitchUser)的命令有su 和 sudo

su 命令

Usage: su [OPTION]… [-] [USER [ARG]…]
Change the effective user id and group id to that of USER.

su root 切换用户,但工作目录和环境变量还是原来用户的,不会更改
-, -l, –login 使shell成为登录shell,清除除TERM以外的所有环境,初始化HOME,SHELL,USER,LOGNAME和PATH;重新加载etc/profile 及 .bash_profile等
-c, –command=COMMAND 传递一个命令到shell
–session-command=COMMAND 传递一个命令到shell,不创建新的会话
-f, –fast pass -f to the shell (for csh or tcsh)
-m,-p –preserve-environment 不要重置HOME,SHELL,USER,LOGNAME环境变量
-s, –shell=SHELL run SHELL if /etc/shells allows it

sudo 命令

sudo – execute a command as another user
使用sudo命令是因为sudo服务和它的管理文件/etc/sudoer。更好的管理权限
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid]
[command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] [-g
groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ...

sudo su 实际上是执行su命令,只不过su的执行权限有sudo服务管理,执行过程中受到visudo的权限控制。其中也不会更改工作目录和更改环境变量

-a 类型使用指定的BSD认证类型
-b 在后台运行命令
-C fd 关闭所有文件描述符
-E 执行命令时保留用户环境
-e 编辑文件而不是运行命令
-g group 执行命令作为指定的组
-H 将HOME变量设置为目标用户的主目录。
-h 显示帮助信息并退出
-i [命令] 以目标用户身份运行登录shell;重载/etc/profile 及 .bash_profile
-K 完全删除时间戳文件
-k 使时间戳文件无效
-l [l] 命令列出用户可用的命令
-n 非交互模式,不会提示用户
-P 保存组向量,而不是设置为目标的
-p 提示使用指定的密码提示
-r 角色创建具有指定角色的SELinux安全上下文
-S 从标准输入读取密码
-s [command] 以目标用户身份运行一个shell
-t 类型创建具有指定角色的SELinux安全上下文
-U 用户列出时,列出指定用户的权限
-u 用户以指定用户的身份运行命令(或编辑文件)
-V 显示版本信息并退出
-v 更新用户的时间戳而不运行命令
停止处理命令行参数