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

By George
at 2010-09-30T08:56
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也不會因此出問題
--
這其實是老問題了 很久以前就有人問過了
下面的法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

By Selena
at 2010-10-04T12:21
at 2010-10-04T12:21

By Emma
at 2010-10-07T22:25
at 2010-10-07T22:25
Related Posts
請問 locate 指令

By Connor
at 2010-09-30T00:53
at 2010-09-30T00:53
關於在系統下 compiler程式的方法

By Harry
at 2010-09-29T20:11
at 2010-09-29T20:11
砍掉win 灌linux

By Hedda
at 2010-09-29T19:06
at 2010-09-29T19:06
想要推廣openoffice嗎?但是要低調…

By Caroline
at 2010-09-29T17:16
at 2010-09-29T17:16
不好意思,問一個很粗淺的問題

By Olive
at 2010-09-29T16:51
at 2010-09-29T16:51