SSH shell 提示不显示某个用户的 user@host

SSH shell 提示不显示某个用户的 user@host

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

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

user1@host:~$

用户 2 的提示如下:

$

最重要的是,当我以 user2 身份登录时,shell 的表现不如我习惯的那样好。无法使用 tab 自动完成命令或文件,而且我无法使用 up 访问 MRU。

答案1

笔记:使用更新中的方法,比手动编辑密码文件更安全。

useradd命令显然设置/bin/sh为默认 shell(而默认 shell 又链接到/bin/dash)。尝试编辑/etc/passwd并将user2更改/bin/sh为。/bin/bash

以后用來adduser儘管如此,

更新: 正如@Scott 下面所建议的那样,不要使用编辑,而是/etc/passwd使用 chsh 命令:

chsh /bin/bash

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

答案2

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

chsh /bin/bash

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

答案3

在完成工作的同时chsh,就像修改用户的其他几个方面一样,该usermod命令是你的朋友:

usermod -s /bin/bash user

它是 的编辑对应部分useradd

答案4

创建新用户时,您可以使用该-s选项指定要使用的 shell。

useradd -m -s /bin/bash {username}

笔记-m创建主目录。

但是,如果用户已经存在,则@Nachbars 解决方案是可行的:

usermod -s /bin/bash {username}

相关内容