ルートのシェルを変更

まず、一言。
ルートで作業するのは危険が伴いますのでくれぐれもご注意を。


昨日、suコマンドでルートになると、tabキーによる入力補完ができなくなると書きました。
なぜかというと、

bash-2.05$ su		←ルートになります
# echo $SHELL		←現在のシェルを表示
/bin/sh			←こいつだそうです。でもlinuxでは/bin/shは何かのリンクです
# ls -l /bin		←lsの-lオプションで属性を表示。/bin/shの正体を暴く
	・
	・
lrwxrwxrwx     1 root	root	 3 Mar  4 16:57	 sh -> ash
	・
	・

sh -> ash
ということで、シェルが/bin/ashだそうです。
こいつは入力補完がないのか。
僕はbashが使いたい。
なら

bash-2.05$ su
# bash
bash-2.05#

というように、bashを動かしてやればよいのです。
いっそのこと、設定ファイルを変えてしまう。
ルート権限をもつようにしたZeditorで/etc/passwdを開く。

root:x:0:0:root:/home/root:bin/sh

がrootに関する情報。
あれ?rootのホームディレクトリって/root じゃないんだ。
それはおいといて、
最後の /bin/sh がデフォルトのシェルだから、

root:x:0:0:root:/home/root:bin/bash

と変えてやる。
こうしとけば、

bash-2.05$ su
bash-2.05#

というように、bashが動いてくれる。
これで入力補完が使える。


/etc/passwd を見てみると、

zaurus:x:500:500:Zaurus User:/home/zaurus:bin/sh

となっており、zaurusユーザもデフォルトは /bin/sh でした。
ターミナルはbashを動かすようになってるんですね。