我正在运行 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}