答案1
来自手册页su
-、-l、--login 提供与用户直接登录时所期望的类似的环境。
使用 - 时,必须将其指定为最后一个 su 选项。其他形式(-l 和 --login)没有此限制。
su
允许您以特定用户身份登录。这样,您将获得一个交互式 shell。使用时,su -
您将获得该用户的登录 shell。这是主要区别。有关登录和非登录 shell 之间的区别,请查看这回答
现在,如果是这样,其作用与您以 root 身份登录sudo su -
几乎相同,但使用您的 sudo 密码进行身份验证。sudo su
sudo -i
答案2
sudo su -
和之间的区别su -
在于:
您sudo su -
将被要求使用您的用户密码进行身份验证(假设您具有 sudo 权限)。如果您具有 sudo 权限且没有密码,则不会提示您输入密码,而是会立即登录为 root 用户。
您su -
将被要求使用 root 密码进行身份验证。这仅在您设置了 root 密码后才有效。
就功能而言,您可以使用其中任何一种来执行任何操作,它们的作用相同,但sudo su -
如果您拥有 NOPASSWD 的 sudo 权限,则更容易进入。请注意,启用 NOPASSWD 的 sudo 对任何可通过 SSH 或 telnet 或任何远程登录协议访问的用户来说都是一个巨大的安全风险。