Ubuntu Server 上新创建的用户出现错误的 shell 提示

Ubuntu Server 上新创建的用户出现错误的 shell 提示

我在 Ubuntu 18.04.01 中创建了一个新用户,如下所示:

sudo useradd svn
sudo passwd svn
sudo mkhomedir_helper svn
sudo usermod -d /home/svn -m svn

问题是,如果我切换到用户,su svn我看不到标准提示命令。而不是标准提示:

svn@svn-server:/srv/svn/$

我只看到:

$

尽管文件的内容/home/svn/.bashrc。在这个“残缺”提示中,我也无法使用 TAB 键来自动完成路径。

如果我echo $PS1svn用户身份运行,我会得到空结果。

我该如何修复这个用户?

答案1

检查您分配的 shell。如果您useradd在 Ubuntu 18 中使用该命令,默认的登录 shell 将会是/bin/sh,您将得到像您提到的那样的输出。您可以通过执行以下命令更改登录 shell:

sudo usermod -s /bin/bash svn

答案2

如果您希望所有新用户使用相同的 shell,您可以使用 进行设置/etc/default/useradd。更改SHELL设置以反映您要使用的 shell 二进制文件的路径。例如,我的看起来像:

HOME=/home
SHELL=/bin/zsh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

另外值得注意的是,您可以使用设置中指定的目录SKEL来定义默认情况下应将哪些文件复制到新用户的主目录中。就我而言,我有一个.zshrc文件,其中包含我想要为所有新用户提供的 zsh 配置。

使用这两个文件为所有新用户设置默认值。

答案3

您可以以新用户身份更改 shell:

$ chsh
更改 svn 的 shell。
新外壳[/bin/sh]:/bin/bash
密码: ****
外壳变了。

可能还有其他清理工作要做,例如帐户是否缺少部分预期的“骨架”内容。你提到了~/.bashrc,所以也许这不是问题。

相关内容