su 命令
用途
更改与会话关联的用户标识。
语法
su [ - ] [ 名称 [ 参数 ... ]]
描述
su 命令将用户凭证更改为 root 用户或由 Name 参数指定的用户,然后开始一个新的会话。 用户名可能包括分布式计算环境 (DCE) 单元规范。
注: 切换到 DCE 用户时,不需要 root 用户来满足 DCE 认证。 在这种情况下,该用户不会获得 DCE 凭证。
任何由 Arguments 参数指定的变量(例如标志或参数),必须与 Name 参数指定的用户所定义的登录 shell 程序相关联。 将这些变量传递到指定用户的登录 shell。 例如,如果用户的登录 shell 程序Fred是 /usr/bin/csh,可以包括 csh 命令的任何标志,例如 -f 标志。 当 su 命令运行时,它将 -f 标志传递到 csh 命令。 当 csh 命令运行时,-f 标志省略 .cshrc 启动脚本。
注: 如果在 /etc/secvars.cfg 文件中设置了 domainlessgroups 属性,并且用户属于轻量级目录访问协议 (LDAP) 域或文件域, 将从 LDAP 域和文件域访存所有组标识。
以下功能是由 su 命令执行的:
项 | 描述 |
---|---|
帐户检查 | 验证用户帐户以确定:该用户帐户存在,已经为 su 命令启用,当前用户是属于被允许使用 su 命令以切换至这个帐户的组,且可以从当前控制终端使用它。 |
用户认证 | 使用系统定义的主要用户认证方法确认用户身份。 如果密码过期,那么用户必须提供新密码。 |
凭证建立 | 使用用户数据库中的值建立初始用户凭证。 这些凭证定义用户对系统的访问权和可计帐性。 |
会话启动 | 如果指定 - 标志,那么 su 命令使用用户数据库和 /etc/environment 文件中的值来初始化用户环境。 如果未使用 - 标志,那么 su 命令不更改目录。 |
这些功能按照显示的顺序执行。 如果某个功能失败,将不执行以后的功能。 要获取这些功能的语义,请参阅 ckuseracct、ckuserID、authenticate、setpcred 和 setpenv 子例程。
要复原先前会话,请输入exit或按 Ctrl-D 键序列。 这项操作结束由 su 命令调用的 shell,并使您返回以前的 shell、用户标识和环境。
如果 su 命令是从 /usr/bin/tsh shell(可信 shell)运行的,您将从那个 shell 退出。 su 命令不更改控制终端的安全性特征。
每次执行 su 命令时,将在 /var/adm/sulog 文件中产生一个条目。 /var/adm/sulog 文件记录以下信息:日期、时间、系统名称以及登录名。 /var/adm/sulog 文件也记录登录尝试是否成功:+(加号)表示登录成功,-(减号)表示登录失败。
注: 仅当用户的 rlogin 和 登录 属性都设置为 /etc/security/user中的 假 时,成功使用 苏 命令才会重置 /etc/security/lastlog 文件中的 unsuccessful_login_count 属性。 否则,su 命令不会复位 unsuccessful_login_count,因为管理员经常使用 su 命令来修订用户帐户问题。 用户能通过本地或远程登录来复位属性。
标志
项 | 描述 |
---|---|
- | 指定要设置的进程环境,就好像用户已经使用 login 命令登录系统。 当前环境中无任何东西传播到新的 shell 中。 注: 此行为旨在与备用 UNIX shell 环境兼容,在这些环境中,在 Name 参数之前允许标志选项。
|
安全性
su 命令是支持 PAM 的带有服务名称 su
的应用程序。 在 /etc/security/login.cfg 的 usw
节中,通过修改 auth_type 属性值来将要使用 PAM 进行认证的系统范围配置设置为作为 root 用户的 PAM_AUTH
。
启用 PAM 时使用的认证机制取决于 /etc/pam.conf中
su
服务的配置。 su 命令需要 auth
, account
, password
和 session
模块类型的 /etc/pam.conf 条目。 为了使su命令在 PAM 身份验证中表现出与标准AIX中类似的行为,必须充分使用 "pam_allowroot
模块,并在 "auth
和 "account
su 服务栈中的pam_aix之前调用该模块。 以下列出了在 /etc/pam.conf 中 su
服务的建议配置:#
# AIX su configuration
#
su auth sufficient /usr/lib/security/pam_allowroot
su auth required /usr/lib/security/pam_aix
su account sufficient /usr/lib/security/pam_allowroot
su account required /usr/lib/security/pam_aix
su session required /usr/lib/security/pam_aix
su password required /usr/lib/security/pam_aix
RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 有关该命令的权限和授权列表,请参阅 "lssecattr命令或 "getcmdattr子命令。
要获取该命令的完整功能,该角色不仅应该具有 accessauths 权限,还应该具有 aix.security.su 权限。示例
- 要获取 root 用户权限,请输入下列其中一个命令:
该命令使用有效用户标识和 root 用户特权来运行子 shell 程序。 将要求您输入 root 用户密码。 按下 End-of-File(文件结束符)、Ctrl+D 按键顺序来结束子 shell 程序,并且返回到原始 shell 会话和特权。su
此命令运行具有有效用户标识和特权的子 shell。root用户。 输入root密码,提示时。 按下 End-of-File(文件结束符)、Ctrl+D 按键顺序来结束子 shell 程序,并且返回到原始 shell 会话和特权。su --
- 获取jim用户,请输入以下命令:
此命令运行具有有效用户标识和特权的子 shelljim.su jim
- 要设置环境,就像您已作为以下对象登录一样:jim用户,请输入:su - jim这将使用以下命令启动子 shell:jim登录环境。
- 要以 root 用户权限运行 backup 命令,然后返回到原始 shell ,请输入:
此命令将在 root 用户的缺省 shell 程序内使用 root 用户权限来运行 backup 命令。 在查询要执行的命令时,必须给出正确的 root 用户密码。su root "-c /usr/sbin/backup -9 -u"
- 输入以下其中一条命令来将当前会话的用户凭证更改为 root 用户:
su -
su - root
su - --
上述命令使用以下命令启动子 shell:root用户的登录环境。
文件
项 | 描述 |
---|---|
/usr/bin/su | 包含 su 命令。 |
/etc/environment | 包含用户环境值。 |
/etc/group | 包含组的基本属性。 |
/etc/passwd | 包含基本用户属性。 |
/etc/security/user | 包含用户的扩展属性。 |
/etc/security/environ | 包含用户的环境属性。 |
/etc/security/limits | 包含用户进程资源限制。 |
/etc/security/passwd | 包含密码信息。 |
/var/adm/sulog | 包含登录尝试的信息。 |