SSH shell 提示不会为一个用户显示 user@host

Bil*_*ill 5 ssh users

我正在运行 Ubuntu 12.04 服务器。我在安装时创建了 user1,今天用“1useradd”创建了 user2,并将它添加到与 user1 相同的所有组中。

但是当我使用 SSH 远程登录时,user1 的提示如下所示:

user1@host:~$
Run Code Online (Sandbox Code Playgroud)

user2 的提示如下所示:

$
Run Code Online (Sandbox Code Playgroud)

最重要的是,当我以 user2 身份登录时,shell 的行为不像我习惯的那样好。没有带有选项卡的命令或文件的自动完成功能,并且我无法使用 up 访问 MRU。

小智 8

这是因为他们的 shell 设置为 /bin/sh,而不是 /bin/bash。您可以使用该程序chsh(CHange SHell) 来更改该用户的 shell。当您以该用户身份登录时,运行:

chsh /bin/bash
Run Code Online (Sandbox Code Playgroud)

我建议不要手动编辑 /etc/passwd,因为您可能会不小心在其中输入语法错误的行(没有意识到),这可能会破坏其他用户的登录。


mar*_*ama 6

注意:使用更新中的方法,比手动编辑passwd文件更安全。

useradd命令显然设置/bin/sh为默认 shell(又链接到/bin/dash)。尝试编辑/etc/passwd和更改/bin/sh/bin/bash用户2。

将来,请adduser改用。

UDPATE: 正如@Scott 在下面建议的那样,不要/etc/passwd使用 chsh 命令进行编辑:

chsh /bin/bash

来源:http : //the-hydra.blogspot.com.ar/2012/03/useradd-and-adduser-are-same-think.html