如何在沒有root的權限下修改預設shell - Linux

George avatar
By George
at 2010-09-30T08:56

Table of Contents

要怎麼把預設的login shell改成自己喜歡的shell呢?

這其實是老問題了 很久以前就有人問過了

下面的法1.~法4.是爬文找到的

法5.是上網查到的

法6.是我自己弄的

總之 這篇文章算是一個統整吧

有其他方法也請不吝指教 @@

法1.

用chsh指令改shell:

chsh -s [想要的shell的路徑] [使用者名稱]

"/etc/passwd"裡必須有你的帳號才行

法2.

如果"/etc/passwd"有你的帳號的話 下這個命令:

cat /etc/passwd | grep [使用者名稱]

分隔字元的最後一段就是該帳號登入時執行的東西

改成你想用的shell即可

法1.跟法2.的限制是

如果你沒有在root權限的group裡的帳號

也沒有可以跟系統管理者申請的管道的話

那這兩個這方法基本上是無效的

法3.

如果家目錄是nfs的話 可以用ypchsh指令來改

結果大概是這樣:

...

To accept the default, simply press return. To use the
system's default shell, type the word "none".
Login shell [/bin/tcsh]: /bin/bash

The login shell has been changed on xxxx...

這範例是把tcsh改成bash

但不知道為什麼 我登入後shell還是tcsh 沒變...

法4.

如果實在沒辦法把預設的login shell改掉

也可以在登入伺服器後 直接執行一個新的shell

可以自己手打shell名稱

或是預先把shell名稱寫到登入時會被讀取的檔案中

法5.

假設預設的login shell是tcsh 想用的是bash

在.cshrc底下加入這兩行:

setevn SHELL '/bin/bash'

exec /bin/bash --login

不過這樣就沒辦法用sftp連到server了

(因為exec執行完後login shell就終止了)

法6.

假設預設的login shell是tcsh 想用的是bash

step1.

在.login中加入"exec /bin/bash --login"

step2.

在.bashrc中加入"export SHELL='/bin/bash'"

step3.

在.bash_profile中加入"source ~/.bashrc"

這樣就可以用bash了 而且sftp也不會因此出問題

--
Tags: Linux

All Comments

Selena avatar
By Selena
at 2010-10-04T12:21
如果沒有root幫你改passwd 進去後再敲幾個字 bash 不是就...
Emma avatar
By Emma
at 2010-10-07T22:25
我有寫這個方法呀(法4.)

請問 locate 指令

Connor avatar
By Connor
at 2010-09-30T00:53
想請教一下 locate 指令要怎麼指定搜尋路徑 我想搜尋某個關鍵字的檔案, 希望指定一個路徑下面的所有資料夾讓他跑 謝謝 - ...

關於在系統下 compiler程式的方法

Harry avatar
By Harry
at 2010-09-29T20:11
目前用VMWARE 灌了fedora 起因是有課程 老師叫我們在linux系統下 跑一個程式 程式如下 int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid a ...

砍掉win 灌linux

Hedda avatar
By Hedda
at 2010-09-29T19:06
大家好,我是新手 之前短暫灌過linux,但因為中間發生一些悲劇 我把MBR寫到外接硬碟去,導致我經歷了一段慘痛的日子 現在我又鼓起勇氣想再繼續使用了 我現在是想把linux灌到我的筆電裡 可是因為我的筆電已經有vista系統 不知道有沒有在不拆除硬碟的情況下,能將vista徹底砍除 好讓我 ...

想要推廣openoffice嗎?但是要低調…

Caroline avatar
By Caroline
at 2010-09-29T17:16
剛剛用openoffice寫了一篇報告,但是拿到別台電腦上用word開,格式就會跑掉… 但是…我字體、段落、目錄、標題都設定好了…不想再東改西改了…於是 去下載了windows版的openoffice版裝到別台電腦上面,打開~哇~格式完全不會跑掉耶 於是我想到…如果我用odt格式的話,要給別人看文件或者是 ...

不好意思,問一個很粗淺的問題

Olive avatar
By Olive
at 2010-09-29T16:51
請問 [rootatas40 ~] 和 [rootatas40 /] 有什麼差別呢?? 後面那個是指 /root的目錄下嗎? 那請問前面呢?  - ...