如何在一个终端上切换用户?

tsh*_*ang 630 users login

我想以不同的用户身份登录而不退出当前用户(在同一终端上)。我怎么做?

小智 748

如何使用su命令?

$ whoami
user1
$ su - user2
Password:
$ whoami
user2
$ exit
logout
Run Code Online (Sandbox Code Playgroud)

如果您想以 root 身份登录,则无需指定用户名:

$ whoami
user1
$ su -
Password:
$ whoami
root
$ exit
logout
Run Code Online (Sandbox Code Playgroud)

通常,您可以使用sudo以您想要的用户身份启动一个新的shell;该-u标志可让您指定所需的用户名:

$ whoami
user1
$ sudo -u user2 zsh
$ whoami
user2
Run Code Online (Sandbox Code Playgroud)

如果您没有 sudo 访问权限,还有更多迂回的方法,例如 ssh username@localhost,但sudo可能是最简单的方法,前提是它已安装并且您有权使用它。

  • 此外,`su - [user]` 可能很有用——额外的破折号为您提供了一个登录 shell。 (29认同)
  • 如果您收到“此帐户当前不可用”: su -s /bin/bash - www-data (2认同)

Mic*_*zek 56

通常你用来sudo以你想要的用户身份启动一个新的 shell;该-u标志可让您指定所需的用户名:

[mrozekma@etudes-1 ~] % whoami
mrozekma
[mrozekma@etudes-1 ~] % sudo -u nobody zsh
[nobody@etudes-1 ~] % whoami
nobody
Run Code Online (Sandbox Code Playgroud)

如果您没有 sudo 访问权限,则有更多迂回的方法,例如ssh username@localhost,但我认为sudo如果已安装并且您有权使用它,那可能是最简单的

  • `sudo -s` 给你一个类似 `su` 的 shell,`sudo -i` 模拟类似 `su -` 的登录。当然可以与`-u $user`结合使用。 (5认同)

小智 29

$ whoami 
Run Code Online (Sandbox Code Playgroud)

此命令打印当前用户。要更改用户,我们必须使用此命令(后跟用户密码):

$ su secondUser
Password:
Run Code Online (Sandbox Code Playgroud)

输入正确的密码后,您将以指定的用户身份登录(您可以通过重新运行whoami.


小智 24

如果您运行的是 Ubuntu,并且您要登录的用户没有设置密码:

sudo su - username
Run Code Online (Sandbox Code Playgroud)

输入你自己的密码,你应该设置。当然,这需要您的用户有权使用sudo.


SYA*_*iDE 10

要将终端会话切换到其他用户,该用户无法退出回原始用户,请使用 exec:

$|# exec su - [用户名]

从技术上讲,这将在新术语进程中登录新用户,并关闭当前用户。这样,当用户尝试退出或 Ctrl-D 时,终端将关闭,就好像该用户是实例化它的用户一样,即用户不能退出回到原始用户的术语。有点毫无意义,考虑到他们仍然可以开始一个新的终端会话并自动进入原始用户术语登录,但它确实存在。

编辑:对于它的价值,您可以在 ~/.bashrc 中使用 linux vlock 命令默认锁定终端会话,需要术语会话用户的密码才能解锁。这将在一定程度上阻止上述术语在原始用户上下文下重新启动,因为该术语未使用用户的非默认 ~/.bashrc 实例化,如配置。


小智 6

sudo -iu <your_username>为我做点什么