在 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 的身份执行命令
login
login
命令用于在终端会话中重新登录为不同的用户。
bashlogin username
login
会终止当前的终端会话,并重新登录为指定用户。su
和 sudo
不同,login
是彻底切换到新用户,且必须输入密码重新登录。ssh
(Secure Shell)ssh
命令用于远程登录到其他用户的系统账户。
bashssh username@hostname
ssh
主要用于远程登录,不仅切换用户,还登录到其他机器上。su
:用于切换用户,su -
还会加载用户环境。sudo
:用于以其他用户身份执行单个命令,不切换当前用户。login
:用于重新登录为指定用户,会话会终止。ssh
:用于远程登录到其他系统的用户账户。根据不同的需求,可以选择适合的命令来切换用户。
本文作者:GYC
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!