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


 クラウディア


1. 概要
2. FreeBSD での動作
3. CentOS での動作

1. 概要

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

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」で、どう動作するのかは未確認です。  「CentOS」では、パスワードの入力を求められ、変更するシェルをフルパスで入力するだけです。

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

AbemaTV 無料体験