在 Linux 系统中,切换用户的方式有多种,不同方法适用于不同的场景。常见的切换用户的方式及其区别如下:
su(Substitute User)su 命令用于切换到其他用户,默认为切换到 root 用户。
su -:切换到 root 用户,并加载 root 用户的环境变量。su username:切换到指定用户,但不加载该用户的环境变量。su - username:切换到指定用户,并加载该用户的环境变量。su - 或 su - username 会像重新登录该用户一样,加载该用户的环境变量、路径等。su username 只切换用户,不会加载该用户的环境变量。bashsu - john # 切换到用户 john,加载其环境
su john # 切换到用户 john,但不加载其环境
sudo(Super User Do)sudo 命令用于以其他用户身份执行单个命令,默认执行 root 用户权限的命令。
sudo command:以 root 用户权限执行单个命令。sudo -u username command:以指定用户的身份执行单个命令。sudo 执行后不会改变当前用户的身份,只是暂时使用 root 或其他用户的权限执行该命令。/etc/sudoers 文件,只有被允许的用户才能使用 sudo。bashsudo ls /root # 使用 root 权限查看 /root 目录
sudo -u john ls /home/john # 使用用户 john 的身份执行命令
loginlogin 命令用于在终端会话中重新登录为不同的用户。
bashlogin username
login 会终止当前的终端会话,并重新登录为指定用户。su 和 sudo 不同,login 是彻底切换到新用户,且必须输入密码重新登录。ssh(Secure Shell)ssh 命令用于远程登录到其他用户的系统账户。
bashssh username@hostname
ssh 主要用于远程登录,不仅切换用户,还登录到其他机器上。su:用于切换用户,su - 还会加载用户环境。sudo:用于以其他用户身份执行单个命令,不切换当前用户。login:用于重新登录为指定用户,会话会终止。ssh:用于远程登录到其他系统的用户账户。根据不同的需求,可以选择适合的命令来切换用户。


本文作者:GYC
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!