su -root 是错误指令
su - root 是正确的,
su root 也可以
其中su - root 是切换到root用户,且读取该用户的环境变量和配置参数
su root 则只是切换到该用户身份,不读取切换用户的环境变量
SU(1) 用户命令 SU(1)
名称
su - 更改用户 ID 或成为超级用户
大纲
su [选项] [用户名]
描述
su 用于让用户在登录期间变成另外一个用户。后边不带 username 使用时,su 默认会变成超级用户。可选的选项
-,可以用于提供一个类似于用户直接登录的环境,用户可能期望是这样的。
附加参数可以在用户名之后提供,这时,将会把他们提供给用户的登录 shell。特别地,参数 -c
将会使下一个参数被多数命令解释器视为命令。这个命令会被 /etc/passwd 中为目标用户指定的 shell 执行。
您可以使用 -- 参数将 su 选项和提供给 shell 的参数分隔开来。
如果合适,将提示用户输入一个密码。输入无效的密码会产生一个错误消息。所有的尝试,无论成功还是失败,都会被记录,以检测对系统的滥用。
当前环境会传递给新 shell。对于普通用户,$PATH 的值重置为 /bin:/usr/bin,而对于超级用户则是 /sbin:/bin:/usr/sbin:/usr/bin。这会随
/etc/login.defs 中的 ENV_PATH 和 ENV_SUPATH 值改变。
在登录 shell 中以第一个字符是“*”标注的是子系统登录。给定的主目录将被用于用户实际登录的新文件系统的根。
选项
su 命令可以接受的选项有:
-c, --commandCOMMAND
通过使用其 -c 选项,指定一个由 shell 运行的命令。
执行的命令将不会拥有控制终端。此选项不能用于执行需要控制 TTY 的交互程序。
-, -l, --login
提供一个类似于用户直接登录的环境,用户可能会希望这样。
使用了 - 时,它必须是 su 的最后一个参数。其它形式(-l 和 --login) 没有这个限制。
温馨提示:答案为网友推荐,仅供参考