我创建了一个新的 Ubuntu 服务器。当我以 root 身份通过 SSH 登录时,我看到:
root@server:
我创建了一个用户。当我以新用户身份通过 SSH 登录时,我看到:
$
当我以 root 身份按下向上箭头键时,我会看到我输入的最后一个命令。当我以新用户身份按下向上箭头键时,我会看到:
$^[[A
删除操作按 root 身份正常运行。作为新用户,删除键插入:
^[[3~
LS 为 root 用户提供颜色编码结果,而为新用户提供无颜色。还存在其他小烦恼。
我假设某个地方有一个针对 root 的配置文件,其中设置了所有这些内容。我如何将这些 UI 细节也应用于我创建的新用户?
答案1
您的新用户没有与您的 root 用户相同的 shell。
以 root 身份打开/etc/passwd
找到你的 root 用户行。它位于顶部附近,如下所示:
root:x:0:0:root:/root:/bin/bash
/bin/bash 部分很重要。
现在找到你的新用户。他们可能/bin/sh
和 root 位于同一个位置/bin/bash
。
替换/bin/sh
为/bin/bash
,然后以新用户身份再次登录。这样应该可以解决问题。
/bin/bash
要使所有用户永久使用默认 shell ,请以 root 身份执行以下操作:
useradd -D -s /bin/bash
useradd -D
您可以通过键入并观察 的值来验证此项已设置SHELL= line
。
答案2
为了确保每个人都获得相似的用户体验,您必须执行两个步骤:
- 骨架/配置文件
- 编辑或替换 shell 骨架文件 (/etc/skel) 为你想要的新的用户获得
- 手动复制已添加用户的骨架文件。确保将文件的所有权分配给用户,以便他们自己进行更改!
- 编辑 /etc/default/useradd 以确保每个新用户都使用你希望他们使用的 shell
- 更改当前用户使用的 shell。有两种方法:
- 推荐一个:
chsh -s /path/to/shell username
. cat /etc/shells 查看你的系统有哪一个 - 另外推荐一个:
usermod -s /path/to/shell username
- 绝对不推荐的是:
vipw
。您以这种方式直接编辑用户数据库。在错误的地方删除一个角色,您就会被锁定。我们警告您。
- 推荐一个:
关于 vipw 的一个相关提示 - 许多人不知道如何使用 vi。除了为了使用 vipw 而学习它之外,您还可以在启动 vipw 之前在环境中导出不同的编辑器。示例:
# export EDITOR=nano
# vipw
然后这将通过 nano 启动 vipw 包装器
答案3
对于 useradd,您不想每次创建新用户时都这样做,您可以这样做“
编辑 /etc/default/useradd 框架文件(但不要忘记备份)。
将 SHELL 变量编辑为 /bin/bash 而不是 /bin/sh。
现在,每次使用 useradd 添加新用户时,bash 都会自动成为他们的默认 shell。“如果要更改现有用户的 shell,则必须编辑 /etc/passwd 文件(请确保备份该文件)。