切換用戶時顯示bash4.1-$解決方法

Linux中切換用戶時變成-bash4.1-$,發現有兩個狀況可能會出現這種現象。linux

場景一:一、在根目錄下建立目錄dirvim

        二、useradd -d /dir tom 建立用戶tom,指定其家目錄爲/dir,而不是其默認家目錄下(/home/tom)bash

        三、su - tom 切換到tom用戶,出現-bash-4.1$ide

緣由分析:若是咱們沒有改變用戶的家目錄的話,一般狀況下,新增用戶指定目錄應該是/home,先來看一下用戶jinjin默認家目錄下有哪些文件spa

再來看一下tom用戶家目錄下有什麼?.net

發如今tom的家目錄下是空的,缺乏用戶登入須要的環境配置文件.bash_profile .bashrc等,那麼爲何須要這樣文件,這就是跟linux的機制有關聯了,由於在linux下每次經過useradd建立新的用戶時,都會將全部的配置文件從/etc/skel複製到新用戶的主目錄下,通常默認在home下面的新用戶主目錄,而關於/etc/skel這個目錄,是主要被useradd所用到。而在咱們建立tom用戶時,系統也出現過提示,沒有將/etc/skel的文件複製到該目錄。orm

解決辦法:經過如上的解析,咱們不難發現要解決命令在用戶切換以後爲何會變成bash格式,就須要將 /etc/skel的用戶環境配置文件複製到指定的默認目錄下便可(此處注意/etc/skel/.後面的點不要漏了,由於那幾個文件都是隱藏文件,不加點沒法對隱藏文件進行復制),這樣在切到tom用戶就沒有出現-bash-4,1$了get

如今再看看tom的家目錄下就有了那些環境配置文件了it

場景二:一、建立用戶sara,家目錄爲默認家目錄 /home/saraio

        二、使用usermod -d /tmp/sara  sara 更改用戶sara的家目錄

        三、su - sara 出現-bash4.1-$

vim /etc/passwd查看到sara的家目錄已經到 /tmp/sara中了

緣由分析:此時查看sara的家目錄確實已經在/tmp/sara中,可是發現sara文件夾仍在/home下而不在/tmp下,那用戶在登入時即沒法在其家目錄下讀取到配置文件。

這是爲何呢?查看usermod的參數,發現-m -d須要一塊兒使用才能把已存在的sara文件夾移到新目錄中去。

解決辦法:在改變用戶家目錄時 usermod帶上參數-d -m

目前你們遇到比較多的是第二種狀況,能夠試試~~

相關文章
相關標籤/搜索