我想以其他用户身份登录,而不退出当前用户(在同一终端上)。我怎么做?
答案1
使用命令怎么样su
?
$ whoami
user1
$ su - user2
Password:
$ whoami
user2
$ exit
logout
如果您想以 root 身份登录,则无需指定用户名:
$ whoami
user1
$ su -
Password:
$ whoami
root
$ exit
logout
一般来说,您可以使用sudo
您想要的用户身份启动一个新的 shell;该-u
标志允许您指定所需的用户名:
$ whoami
user1
$ sudo -u user2 zsh
$ whoami
user2
如果您没有 sudo 访问权限,还有更迂回的方法,例如 ssh username@localhost,但sudo
可能最简单,前提是已安装它并且您有权使用它。
答案2
通常,您可以sudo
以所需的用户身份启动新的 shell;该-u
标志允许您指定所需的用户名:
[mrozekma@etudes-1 ~] % whoami
mrozekma
[mrozekma@etudes-1 ~] % sudo -u nobody zsh
[nobody@etudes-1 ~] % whoami
nobody
如果您没有 sudo 访问权限,还有更迂回的方法,例如ssh username@localhost
,但我认为sudo
如果已安装并且您有权使用它,则可能是最简单的方法
答案3
$ whoami
该命令打印当前用户。要更改用户,我们必须使用此命令(后跟用户密码):
$ su secondUser
Password:
输入正确的密码后,您将以指定的用户身份登录(您可以通过重新运行来检查)whoami
。
答案4
要将终端会话切换到其他用户(该用户无法退出回原始用户),请使用 exec:
$|# exec su - [用户名]
从技术上讲,这将在新的术语流程中登录新用户,并关闭当前的流程。这样,当用户尝试退出或按 Ctrl-D 时,终端将关闭,就好像该用户是实例化它的人一样,即用户无法退出回到原始用户的术语。考虑到他们仍然可以启动一个新的终端会话并自动以原始用户术语登录,这有点毫无意义,但事实就是如此。
编辑:对于它的价值,您可以在 ~/.bashrc 中使用 linux vlock 命令默认锁定终端会话,需要术语会话用户的密码才能解锁。这会在一定程度上阻止上述术语在原始用户上下文下重新启动,因为该术语未按照配置使用用户的非默认 ~/.bashrc 进行实例化。