su.1

SU(1)

SU(1)

FreeBSD General Commands Manual

SU(1)

su

替代用户身份

su [-] [-c class] [-flms] [login [args]]

su 实用程序通过 PAM 请求适当的用户凭据并切换到该用户 ID(默认用户是超级用户)。 然后执行一个 shell。

用于设置 su(1) 将使用的策略。 特别是,默认情况下,只有 “wheel” 组中的用户才能切换到 UID 0 (“root”) 。 可以通过修改 /etc/pam.d/su 的 “pam_group” 部分来更改此组要求。 有关如何修改此设置的详细信息,请参阅 pam_group(8) 。

默认情况下,除 USER, HOME, 和 SHELL 外,环境未修改。 HOMESHELL 设置为目标登录的默认值。 USER 设置为目标登录,除非目标登录的用户 ID 为 0,在这种情况下它是未修改的。 调用的 shell 是属于目标登录的 shell。 这是 su 的传统行为。 适用于原始用户登录类(参见 login.conf(5) )的资源限制和会话优先级通常也会保留,除非目标登录的用户 ID 为 0。

选项如下:

-c class

使用指定登录类的设置。 登录类必须在 login.conf(5) 中定义。 只允许超级用户使用。

-f

如果调用的 shell 是 csh(1) ,此选项会阻止它读取 “.cshrc” 文件。

-l

模拟完整登录。 除 HOME, SHELL, PATH, TERM, 和 USER 之外的环境将被丢弃。 HOMESHELL 修改如上。 USER 设置为目标登录。 PATH 设置为 “/bin:/usr/bin” 。 TERM 是从您当前的环境中导入的。 可以根据目标登录的类从登录类能力数据库中设置或覆盖环境变量。 调用的 shell 是目标登录的, su 会将目录更改为目标登录的主目录。 资源限制和会话优先级被修改为目标帐户的登录类。

-

(无字母)与 -l 相同。

-m

保持环境不变。 调用的 shell 是您的登录 shell,不会更改目录。 作为安全预防措施,如果目标用户的 shell 是非标准 shell(由 getusershell(3) 定义)并且调用者的真实 uid 不为零,则 su 将失败。

-s

作为用户凭证设置的一部分,将 MAC 标签设置为用户的默认标签。 如果调用进程的 MAC 标签不足以转换为用户的默认 MAC 标签,则设置 MAC 标签可能会失败。 如果无法设置标签,则 su 将失败。

-l (或 -) 和 -m 选项是互斥的;最后一个指定的覆盖任何以前的。

如果在命令行上提供了可选 args ,它们将被传递到目标登录的登录 shell。 请注意,目标登录名之前的所有命令行参数都由 su 自己处理,目标登录名之后的所有内容都被传递给登录 shell。

默认情况下(除非提示被启动文件重置)超级用户提示设置为 “#” 以提醒其强大的功能之一。

su 使用的环境变量:

HOME

真实用户 ID 的默认主目录,除非按照上面指定的方式进行修改。

PATH

真实用户 ID 的默认搜索路径,除非按照上面指定的方式进行修改。

TERM

提供可以为替换的用户 ID 保留的终端类型。

USER

用户 ID 始终是 su 后的有效 ID(目标用户 ID),除非用户 ID 为 0(root)。

/etc/pam.d/su

su 的 PAM 配置。

su -m operator -c poweroff

以用户 operator 身份启动 shell,并运行命令 poweroff 。 除非您的真实 UID 为 0,否则您将被要求输入操作员密码。 请注意, -m 选项是必需的,因为默认情况下用户 “operator” 没有有效的 shell。 在这个例子中, -c 被传递给用户 “operator” 的 shell,并且不被解释为 su 的参数。

su -m operator -c 'shutdown -p now'

与上面相同,但目标命令包含多个单词,因此被引用以与传递给 shell 的 -c 选项一起使用。 (大多数 shell 期望 -c 的参数是一个单词)。

su -m -c staff operator -c 'shutdown -p now'

与上面相同,但目标命令在登录类 “staff” 的资源限制下运行。 注意:在这个例子中,第一个 -c 选项适用于 su 而第二个是被调用的 shell 的参数。

su -l foo

模拟用户 foo 的登录。

su - foo

和上面一样。

su -

模拟 root 登录。

csh(1), sh(1), group(5), login.conf(5), passwd(5), environ(7), pam_group(8)

su 命令出现在 Version 1 AT&T UNIX 中。

March 26, 2020

FreeBSD 13.1-RELEASE

最后更新于

FreeBSD 中文社区