首页 / 操作系统 / Linux / 详解Linux系统中su和sudo命令的用法
su NAME(名称) su - 运行替换用户和组标识的shell SYNOPSIS(总览) su [OPTION]... [-] [USER [ARG]...] DESCRIPTION(描述) 修改有效用户标识和组标识为USER的. -, -l, --login 使得shell为可登录的shell -c, --commmand=COMMAND 传递单个COMMAND给-c的shell. -f, --fast 传递-f给shell(针对csh或tcsh) -m, --preserve-environment 不重置环境变量 -p 与-m同 -s, --shell=SHELL 如果/etc/shells允许,运行SHELL. --help 显示帮助并退出 --version 输出版本信息并退出 单一的-意味着-l.如果没有给定USER,则假定为root. 例:复制代码 代码如下: [root@Blackghost ~] su zhangying#切换用户,原用户环境变量 [root@Blackghost ~] su - zhangying#切换用户,新用户环境变量 [zhangying@Blackghost ~] su -c ls root#切换用户执行命令,执行后返回原用户sudo 用户也可以通过su切换到root用户运行命令。然而与su的启动一个root shell允许用户运行之后的所有的命令不同,sudo可以针对单个命令授予临时权限。sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。sudo也可以用来以其他用户身份执行命令。此外,sudo可以记录用户执行的命令,以及失败的特权获取。 选项: -a type 使用指定的 BSD 认证类型 -b 在后台运行命令 -C fd 关闭所有 >= fd 的文件描述符 -E 在执行命令时保留用户环境 -e 编辑文件而非执行命令 -g group 以指定的用户组执行命令 -H 将 HOME 变量设为目标用户的主目录。 -h 显示帮助消息并退出 -i [command] 以目标用户身份运行一个登录 shell -K 完全移除时间戳文件 -k 无效的时间戳文件 -l[l] command 列出用户能执行的命令 -n 非交互模式,将不提示用户 -P 保留组向量,而非设置为目标的组向量 -p prompt 使用指定的密码提示 -S 从标准输入读取密码 -s [command] 以目标用户身份运行 shell -U user 在列表时,列出指定用户的权限 -u user 以指定用户身份运行命令(或编辑文件) -V 显示版本信息并退出 -v 更新用户的时间戳而不执行命令 -- 停止处理命令行参数 例:复制代码 代码如下: [root@Blackghost ~] sudo -u tank ls #以tank用户,来执行ls命令 [zhangying@Blackghost ~] sudo touch test#以root账户来建一个文件test,为空默认是root用户
收藏该网址