su 的功能是使用替代用户和组ID运行命令。

用法

su [options] [-] [user [argument...]]

在未指定用户的情况下调用时,su 默认以 root 身份运行交互式 shell。当用户被指定时,可以提供额外的参数,在这种情况下它们被传递给 shell。为了向后兼容,su 默认不改变当前目录,只设置环境变量 HOME 和 SHELL(如果目标用户不是 root,则加上 USER 和 LOGNAME)。建议始终使用 --login 选项(而不是其快捷方式 -)以避免混合环境引起的副作用。

选项

-c,--command=command

将 command 传给shell。

-f,--fast

仅在 csh 和 tcsh 生效,shell 不读取启动文件。

-g,--group=group

指定主要的组,此选项仅对 root 用户可用。

-G,--supp-group=group

指定一个补充组。此选项仅对 root 用户可用。如果选项 --group 未指定,则第一                    个指定的补充组也用作主要组。

-,-l,--login

将 shell 作为登录 shell 启动,其环境类似于真实登录:

① 清除除 TERM 和 --whitelist-environment 指定的变量之外的所有环境变量

② 初始化环境变量 HOME、SHELL、USER、LOGNAME 和 PATH

③ 切换到目标用户的家目录

④ 将 shell 的 argv[0] 设置为“-”以使 shell 成为登录 shell

-m,-p,--preserve-environment

保留整个环境,即不设置 HOME、SHELL、USER 或 LOGNAME。如果指定了选                  项 --login,则忽略此选项。

-P,--pty

为会话创建伪终端。独立终端提供更好的安全性,因为用户不与原始会话共享终                    端。这允许避免 TIOCSTI ioctl 终端注入和针对终端文件描述符的另一种安全攻                      击。所有会话也可以移动到后台(例如,“su --pty -username -c application &")。                  如果启用了伪终端,那么 su 命令将作为会话之间的代理(复制 stdin 和                                  stdout)。此功能主要用于交互式会话。如果标准输入不是终端,而是例如管道                    (echo "date" | su --pty),那么伪终端的 ECHO 标志将被禁用以避免混乱                              的输出。

-s,--shell=shell

运行指定的 shell 而不是默认的。根据以下规则依次选择要运行的 shell:

① 使用 --shell 指定的 shell

② 使用环境变量 SHELL 指定的 shell,如果使用了 --preserve-environment 选项

③ 目标用户的 passwd 信息中的 shell

④ /bin/sh

如果目标用户有一个受限的 shell(即没有在 /etc/shells 中列出),除非调用用户                    是 root,否则 --shell 选项和 SHELL 环境变量将被忽略。

--session-command=command

类似 -c 但是不创建新的会话(不建议使用)。

-w,--whitelist-environment=list

清除 --login 的环境时,不要重置逗号分隔列表中指定的环境变量。环境变量                          HOME、SHELL、USER、LOGNAME 和 PATH 的白名单将被忽略。

-V,--version

展示版本信息后退出。

-h,--help

展示帮助信息后退出。

信号

在接收到 SIGINT、SIGQUIT 或 SIGTERM 后,su 终止其子进程,然后用接收到的信            号终止自身。子进程被 SIGTERM 终止,在尝试失败并延迟 2 秒后子进程被 SIGKILL            杀死。

配置文件

su 读取 /etc/default/su 和 /etc/login.defs 作为配置文件。下边是和 su 有关的配置参                数:

FAIL_DELAY(数字)

延迟的秒数,以避免认证失败。这个参数值必须是非负整数。

ENV_PATH(字符串)

给一个常规用户定义环境变量 PATH,默认值是 /usr/local/bin:/bin:/usr/bin。

ENV_ROOTPATH(字符串)

ENV_SUPATH(字符串)

给 root 用户定义环境变量 PATH,ENV_SUPATH 优先。默认值是                                          /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin。

ALWAYS_SET_PATH(布尔值)

如果设置成 yes 且没有指定 --login 和 --preserve-environment,su 初始化                              PATH。

在 /bin 和 /sbin 合并到 /usr 的系统上,环境变量 PATH 可能不同,该变量还受 --login            命令行选项和 PAM 系统设置(例如 pam_env)的影响。

退出状态

su 通常返回它执行的命令的退出状态。如果命令被信号杀死,则 su 返回信号的编号加          上 128 的值。

su 自身产生的退出状态:

1        执行请求的命令之前的一般错误

126    请求的命令无法执行

127    请求的命令找不到

相关文件

/etc/pam.d/su        默认 PAM 配置文件

/etc/pam.d/su-l      指定 --login 时的 PAM 配置文件

/etc/default/su       命令指定的 logindef 配置文件

/etc/login.defs       全局 logindef 配置文件

linux 命令:su 详解相关推荐

  1. Linux命令-ls详解

    Linux命令-ls详解(适合小白用户参考) 1.ls        不加任何参数,表示查询当前目录下的文件/文件夹 小提示:上面的白色文字表示普通文件,蓝色文字表示目录 2.ls        后面 ...

  2. 面试官都在问 | Linux命令mpstat详解

    面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...

  3. linux 命令 curl 详解

    一.curl 介绍 curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出stdout上面; 可以用它来构造http request报文,curl(C ...

  4. linux命令 正则表达式,详解Linux命令中的正则表达式

    详解Linux命令中的正则表达式 Mark Do 2017年9月19日 暂无评论 阅读 981 次 命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式 ...

  5. LINUX命令大全详解备忘录

    文件目录操作命令 ls命令 cd命令 pwd命令 mkdir命令 rm 命令 rmdir 命令 mv命令 cp 命令 touch 命令 cat 命令 nl命令 more命令 less 命令 head ...

  6. Linux命令大全详解,让我们轻松入门学习Linux!

    1.最基本常用命令 序号 命令 对应英文 作用 01 ls list 查看当前文件夹下的内容 02 pwd print wrok directory 查看当前所在文件夹 03 cd [目录名] cha ...

  7. linux命令历史详解

    概念:顾名思义,我们在linux终端输过的命令,系统都会将他们加载到内存中,以便我们快速调用命令.另外,Bash拥有自动记录命令历史的功能,用户所执行的命令会在注销时自动记录到自己的家目录下的.bas ...

  8. linux命令——ll详解

    一.ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名. Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便. 如果要使用此命令,可以作如下修改: ...

  9. Linux命令lsscsi详解

    @ 一.什么是scsi 二.常见硬盘接口 1. IDE接口的硬盘 2. SCSI接口硬盘 3. SATA接口类型 三. lsscsi命令 1. lsscsi 命令安装 2. lsscsi命令英文手册 ...

  10. linux命令ps详解

    原文地址:http://apps.hi.baidu.com/share/detail/32573968 名称:ps 使用权限:所有使用者 使用方式:ps [options] [--help] 说明:显 ...

最新文章

  1. java继承中构造方法_java之继承中构造方法总结(文字版)
  2. 概率dp——处理分母为0的情况hdu3853
  3. ROS探索总结(五)——创建简单的机器人模型smartcar
  4. 数字游戏(水博客ing / csp-J T1 / luogu 5660)
  5. 现代软件工程讲义 个人项目和结对项目练习 四则运算
  6. Kubernetes三周年,这仅仅是伟大征途的开始
  7. 高职高考全国计算机证书查询,2017年广东3+证书(高职高考)录取结果查询入口:附广东3+证书(高...
  8. 放弃深度学习?我承认是因为线性代数
  9. 138. Copy List with Random Pointer
  10. 深度 | 从各种注意力机制窥探深度学习在NLP中的神威
  11. 1.数独游戏(生成题目解唯一)
  12. 计算机审计中级题库,中级审计师用什么题库练习呢
  13. 华为测试岗实习生面试回顾
  14. 淘客基地教你如何推广淘客小程序
  15. python统计文章中高频词汇并生成词云
  16. 2020 数据科学平台领域最具商业合作价值企业盘点
  17. 高德地图JS-API开发—测距
  18. deepin 蓝牙适配器 安装
  19. 大数据项目(BP神经网络)
  20. CorelDRAW2022最新版本号V24.0.0.301订阅版

热门文章

  1. 职场:大学生情侣搭档求职难
  2. pr-流程、界面、操作流程1
  3. 史上最全最新前端面试题(不定期更新,有问题欢迎评论区对线)
  4. [main] 32-bit servers don't have journaling enabled by default. Please use --journal if you want dur
  5. 2018 天梯赛及蓝桥杯比赛感想
  6. 计算机无法连接网络错误651,网络连接错误651是什么原因
  7. linux-ubuntu常用命令(深圳文鹏)
  8. 【宋红康 MySQL数据库 】【高级篇】【06】MySQL的逻辑架构
  9. 家长叫我别天天我在房间没事多看看新闻,我说我马上写个爬虫爬新闻看!!!
  10. 抢手机型ROOT测评 ROOT大师成功率达99%