コマンドリファレンス - シェルの変更 chsh

クラウディア 
1. chsh シェルの変更
2.  FreeBSD での動作
3.  CentOS での動作

1. chsh シェルの変更

 作業中ユーザのログイン時のシェルを変更します。

chsh
 実際、以下で、シェルを変更するのですが、どのシェルか使えるかがわからないときがあります。  ディストリビューションによって、シェルのあるディレクトリが、「/bin」のこともありますし、「/usr/bin」のこともありますからね。  「Manjaro 21.1 GNOME」が「zsh」で、何へ変更できるかわからく手、打ち間違えたら

chsh: "/usr/bin/hogehoge" は /etc/shells の一覧内にありません。
chsh -l を実行すると、一覧を表示することができます。
 と、表示されました。  「Linux」少なくとも「Manjaro」は「chsh -l」というオプションで、一覧表示できます。  (残念ながら、「FreeBSD」には、このオプションはありません)  「Manjaro 21.1 GNOME」で一覧表示しましたら、こんななりました。

$ chsh -l
/bin/sh
/bin/bash
/bin/zsh
/usr/bin/zsh
/usr/bin/git-shell

2. FreeBSD での動作

 実行すると、vi エディタが起動されます。  つまり vi を使えない人はこのコマンドを使用してはいけません。

#Changing user information for ユーザ名.
Shell: /bin/tcsh ← ここに使用したいシェルをフルパスで記述します
Full Name:
Office Location:
Office Phone:
Home Phone:
Other information:
 vi ですから中止するには :q!Enter、変更して書き込むには :xEnter を入力します。  変更した内容は
/etc/passwd
 に保存されます。  反映するにはいったんログアウトしてログインしなおします。  同様なユーザデータベースを変更するコマンドが chpass、chfn、ypchpass、ypchfn、ypchsh とあり、それぞれ変更する内容が異なります。

3. CentOS での動作

 CentOS でしかやってみていないので、他の Linux で、どう動作するのかは未確認です。  CenOS では、パスワードの入力を求められ、変更するシェルをフルパスで入力するだけです。

$ chsh
hogehoge のシェルを変更します。
パスワード:					←	パスワードを入力して Enter
新しいシェル [/bin/csh]:	←	シェルをフルパスで入力して Enter