Linux中切換用戶變成-bash4.1-$的解決方法【轉】


轉自

Linux中切換用戶變成-bash4.1-$的解決方法 - xia_xia的博客 - 博客頻道 - CSDN.NET
http://blog.csdn.net/xia_xia0919/article/details/50588985

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

場景一:1、在根目錄下創建目錄dir

        2、useradd -d /dir tom 創建用戶tom,指定其家目錄為/dir,而不是其默認家目錄下(/home/tom)

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

原因分析:如果我們沒有改變用戶的家目錄的話,通常情況下,新增用戶指定目錄應該是/home,先來看一下用戶jinjin默認家目錄下有哪些文件

再來看一下tom用戶家目錄下有什么?

發現在tom的家目錄下是空的,缺少用戶登入需要的環境配置文件.bash_profile .bashrc等,那么為什么需要這樣文件,這就是跟linux的機制有關聯了,因為在linux下每次通過useradd創建新的用戶時,都會將所有的配置文件從/etc/skel復制到新用戶的主目錄下,一般默認在home下面的新用戶主目錄,而關於/etc/skel這個目錄,是主要被useradd所用到。而在我們創建tom用戶時,系統也出現過提示,沒有將/etc/skel的文件復制到該目錄。

解決辦法:通過如上的解析,我們不難發現要解決命令在用戶切換之后為什么會變成bash格式,就需要將 /etc/skel的用戶環境配置文件復制到指定的默認目錄下即可(此處注意/etc/skel/.后面的點不要漏了,因為那幾個文件都是隱藏文件,不加點無法對隱藏文件進行復制),這樣在切到tom用戶就沒有出現-bash-4,1$了

現在再看看tom的家目錄下就有了那些環境配置文件了

場景二:1、創建用戶sara,家目錄為默認家目錄 /home/sara

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

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

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

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

這是為什么呢?查看usermod的參數,發現-m -d需要一起使用才能把已存在的sara文件夾移到新目錄中去。

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

目前大家遇到比較多的是第二種情況,可以試試~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM