Linux下如何切换用户
Linux 是一个多用户操作系统,这意味着它支持同时拥有多个用户帐户。某些 Linux 系统可能有几个不同的帐户,而其他系统可能有数百个,具体取决于系统的用途。对于负责用户帐户管理的 Linux 管理员来说,在用户帐户之间切换是一项常见任务,因为这允许他们测试权限或解决问题。
在本教程中,您将学习如何在 Linux 上切换用户帐户。您需要拥有必要的凭据才能以其他用户身份登录(用户名和密码),或者通过 root 用户拥有系统的管理访问权限。我们将在下面讨论这两种情况。
在本教程中您将学习:
如何查看用户帐户列表
如何切换到不同的用户帐户
如何切换到root用户帐户
如何以不同用户身份执行命令
如何通过 GUI 切换用户
如何在 Linux 上切换用户帐户
列出用户
让我们首先列出系统上已创建的用户帐户。此命令不需要 root 权限,因为任何用户都可以查看所有配置的帐户。
$ cat /etc/passwd
用户名列在每行的第一个字段中。
您知道吗?
许多系统服务,例如 SSH 或 MySQL,将在安装时创建自己的用户帐户。这是为了方便服务运行所需的各种系统功能。这些系统帐户通常不适合人们访问,并且默认情况下会指向不可用的 shell。
只要我们知道您在 /etc/passwd
文件中看到的任何用户的登录凭据,并牢记上述警告,我们就能够登录他们。
登录到不同的用户(作为普通用户)
现在我们知道要以哪个用户身份登录,我们可以执行以下命令。在此示例中,我们将尝试登录 testuser
用户帐户:
$ su testuser
然后系统将提示我们输入 testuser
帐户的密码。
您可以在上面的屏幕截图中看到,在提供 testuser
的密码后,我们运行 whoami 命令来验证我们是否已以其他用户身份成功登录:
$ whoami
testuser
登录到不同的用户(作为 root)
如果您已经登录到 root 用户帐户,那么登录另一个用户就非常简单了。您不需要知道用户的密码。事实上,用户甚至根本不需要配置密码。由于您是 root,因此您仍然可以登录该帐户。
我们将使用与之前相同的语法:
# su testuser
$ whoami
testuser
相反,如果您通常使用 sudo 命令以 root 身份执行命令,那么我们可以使用以下语法:
$ sudo su testuser
[sudo] password for linuxconfig:
$ whoami
testuser
请注意,这次系统会提示我们输入 sudo 密码,而不是我们尝试访问的用户帐户的密码。
以不同用户身份执行命令
如果我们想以不同的用户身份执行命令,而不经历必须切换到该用户帐户并在完成后切换回来的整个过程,该怎么办?在这种情况下,我们可以使用此语法,它将使用我们的 testuser
帐户执行 echo
命令。
$ sudo -u testuser bash -c 'echo "I am $USER"'
I am testuser
如何通过 GUI 切换用户
在 GUI 中,您可以通过桌面环境的锁定屏幕切换到不同的用户。您需要注销当前用户,然后通过在锁定屏幕上输入其他用户的帐户凭据来登录该用户:
结束语
在本教程中,我们了解了如何在 Linux 系统上切换用户帐户。用户帐户提供共享系统上资源和文件的分离,或者可以配置为促进某些系统服务。无论如何,能够在帐户之间快速切换是所有 Linux 管理员都应该具备的一项有用技能。