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

Chr*_*ris 1 ubuntu ssh

我创建了一个新的 Ubuntu 服务器。当我以 root 身份通过 SSH 登录时,我看到:

root@server:
Run Code Online (Sandbox Code Playgroud)

我创建了一个用户。当我以新用户身份通过​​ SSH 登录时,我看到:

$
Run Code Online (Sandbox Code Playgroud)

当我以 root 身份按下向上箭头键时,我看到了我输入的最后一个命令。当我以新用户的身份按下向上箭头键时,我看到:

$^[[A
Run Code Online (Sandbox Code Playgroud)

以 root 身份删除按预期工作。作为新用户,删除键插入:

^[[3~
Run Code Online (Sandbox Code Playgroud)

LS 为 root 提供颜色编码结果,新用户没有颜色。其他小烦恼也存在。

我假设 root 的某个地方有一个配置文件,它设置了所有这些东西。我如何将这些 UI 细节也应用于我创建的新用户?

jdw*_*jdw 7

您的新用户与您的 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.

  • 如果您正在编辑`/etc/passwd` 或`/etc/shadow` 文件,请使用`vipw` 来完成。它会在保存文件之前进行语法和一致性检查,以帮助防止您将自己锁定。您还可以使用 `usermod -s /path/to/new/shell username` 更改用户的 shell (5认同)
  • 仅供参考,chsh 是更改 shell 的首选方法。不鼓励编辑 /etc/passwd 和 /etc/shadow,因为如果操作不当,可能会导致帐户无法登录。 (2认同)

pau*_*ska 5

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

  1. 骨架/配置文件
    • 使用您希望用户获得的文件编辑或替换 shell 框架文件 (/etc/skel)
    • 手动复制您已添加的用户的骨架文件。确保您将文件 chown 给用户,以便他们可以自己进行更改!
    • 编辑 /etc/default/useradd 以确保每个新用户都使用您希望他们使用的 shell
  2. 更改当前用户使用的 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
Run Code Online (Sandbox Code Playgroud)

然后这将通过 nano 启动 vipw 包装器