如何使一个用户的SSH体验与另一个用户的一样

我已经创build了一个新的Ubuntu服务器。 当我以root身份login时,我看到:

root@server: 

我创build了一个用户。 当我作为新用户SSHlogin时,我看到:

 $ 

当我按下向上箭头键时,我看到我input的最后一个命令。 当我按下向上箭头键作为新用户时,我看到:

 $^[[A 

按照预期的方式删除根目录。 作为新用户,删除键插入:

 ^[[3~ 

LS提供根目录的颜色编码结果,新用户没有颜色。 其他一些小烦恼也存在。

我假设有一个configuration文件的地方是为所有这些东西设置的根。 我怎样才能将这些UI细节应用到我创build的新用户呢?

您的新用户没有与root用户相同的shell。

以root身份打开/etc/passwd

find你的根用户线。 它将靠近顶部,看起来像这样:

root:x:0:0:root:/root:/bin/bash

/ bin / bash部分很重要。

现在find你的新用户。 他们可能有/bin/sh在同一个地方,根有/bin/bash

/bin/bashreplace/bin/sh ,然后再次以新用户身份login。 这应该解决它。

要为所有用户永久性地创build默认shell /bin/bash ,请以root用户身份执行此操作:

useradd -D -s /bin/bash

你可以通过useradd -D来validation这个设置,并且观察SHELL= line的值。

为了确保为每个人提供类似的用户体验,您必须执行两个步骤:

  1. 骨架/configuration文件
    • 编辑或replaceshell骨架文件(/ etc / skel)与你想要用户得到的
    • 手动复制已添加的用户的骨架文件。 确保你将文件分发给用户,以便他们可以自己修改!
    • 编辑/ etc / default / useradd以确保每个新用户使用您希望他们使用的shell
  2. 改变当前用户使用的shell。 有两种方法:
    • 推荐一个: chsh -s /path/to/shell username 。 Cat / etc / shells来查看你的系统有哪一个
    • 还推荐一个: usermod -s /path/to/shell username
    • 绝对不推荐: vipw您正在以这种方式直接编辑用户数据库。 在错误的地方删除一个angular色,你已经locking了自己。 你被警告。

有关vipw的相关提示 – 许多人不知道如何使用vi。 不要仅仅为了使用vipw而学习它,你可以在启动vipw之前在环境中导出一个不同的编辑器。 例:

 # export EDITOR=nano # vipw 

这将通过纳米启动vipw包装

为useradd你不想每次创build一个新的用户,你可以做“

编辑/ etc / default / useradd框架文件(不要忘了做一个备份)。

编辑SHELLvariables为/ bin / bash而不是/ bin / sh。

现在,每次使用useradd添加新用户bash都会自动将其默认shell。 “如果你想改变已经存在的用户的shell,你必须编辑/ etc / passwd文件(请确保备份了它)。