Bash

使用“su”切換使用者只給我 $ 提示

  • July 30, 2019

我正在使用 Ubuntu 19,並且已經創建了一些使用者。在我創建並嘗試執行的最新使用者上:

su使用者

我只使用 $ 提示符登錄,但是當我以該使用者身份鍵入“bash”時,我得到:userx@myhost:

我的其他使用者都以 user@myhost 身份登錄。為什麼該使用者直接進入 $ 提示符?而且我的路徑似乎都不起作用。當我輸入ll時,它在我輸入“bash”之前不起作用。

很可能您在創建使用者時沒有為使用者設置登錄 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>

引用自:https://unix.stackexchange.com/questions/532986