使用“su”切换用户只给我 $ 提示符

使用“su”切换用户只给我 $ 提示符

我正在使用 Ubuntu 19,并且已经创建了一些用户。在我创建并尝试执行的最新用户上:

苏用户x

我仅使用 $ 提示符登录,但是当我以该用户身份输入“bash”时,我得到:用户x@myhost:

我的其他用户都以 user@myhost 身份登录。为什么该用户直接进入 $ 提示符?而且我的路径似乎都不起作用。当我打字时在我输入“bash”之前它不起作用。

答案1

很可能您在创建用户时没有为用户设置登录 shell,导致su默认为/bin/sh.如中所述man su

       The invoked shell is chosen from (highest priority first):

           The shell specified with --shell.

           If --preserve-environment is used, the shell specified by the
           $SHELL environment variable.

           The shell indicated in the /etc/passwd entry for the target
           user.

           /bin/sh if a shell could not be found by any above method.

使用 adduser 而不是 useradd 可以使此过程更容易。

如果 /etc/passwd 中用户旁边没有列出登录 shell,则可以确认这就是问题所在。

您可以通过运行来修复此问题usermod -s /bin/bash <username>

相关内容