我正在运行 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,因为您可能会不小心在其中输入语法错误的行(没有意识到),这可能会破坏其他用户的登录。
注意:使用更新中的方法,比手动编辑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