ログインシェルの変更「chsh」

chshコマンド

chshコマンドの概要と説明

はじめに

Linuxシステムでは、ユーザーがログインする際に使用されるデフォルトのシェルを設定・変更することができます。そのために使用されるのが chsh(change shell)コマンドです。chsh コマンドを使うことで、ユーザーは自分のデフォルトのシェルを簡単に変更でき、システム管理者も他のユーザーのデフォルトシェルを設定できます。 本記事では、chsh コマンドの概要、オプション、そして使用例について説明します。

chshコマンドとは?

chsh コマンドは、ユーザーのログインシェルを変更するために使用されるコマンドです。シェルとは、ユーザーがLinuxシステム上でコマンドを実行するためのインターフェースで、bash、sh、zsh、cshなど、さまざまな種類があります。chsh コマンドを使うことで、これらのシェルのうち、どれをデフォルトとして使用するかを設定することができます。

chshコマンドの主な用途

chshコマンドは、以下のような用途で使用されます。

  • ユーザーのデフォルトシェルの変更
  • システム管理者による他のユーザーのシェル設定
  • 特定の作業に適したシェルの切り替え

chshコマンドの基本的なオプション

chsh コマンドには、いくつかのオプションが用意されていますが、非常にシンプルなコマンドです。主に以下のオプションが使用されます。

  • -s シェルパス: 新しいデフォルトシェルを指定します。シェルのフルパス(例: /bin/bash)を指定します。
  • -l: 利用可能なシェルの一覧を表示します。/etc/shells ファイルにリストされているすべてのシェルが表示されます。
  • -h: 使用できるオプションのヘルプを表示します。
  • -R chrootディレクトリ: システムのルートディレクトリではなく、chroot環境の中でコマンドを実行します。

chshコマンドの使用例

次に、chsh コマンドの具体的な使用例をいくつか紹介します。

1. デフォルトシェルを bash に変更する

現在のデフォルトシェルを bash に変更するには、以下のコマンドを実行します。

# chsh -s /bin/bash

このコマンドを実行すると、次回ログイン時からユーザーのデフォルトシェルが /bin/bash に変更されます。

2. 利用可能なシェルの一覧を表示する

システム上で利用可能なすべてのシェルを確認するには、以下のコマンドを使用します。

# chsh -l

このコマンドは、/etc/shells ファイルにリストされているシェルの一覧を表示します。

3. 別のユーザーのデフォルトシェルを変更する

システム管理者は、root 権限を持つ場合、他のユーザーのシェルを変更することもできます。以下のコマンドを実行して、特定のユーザーのシェルを zsh に変更できます。

# chsh -s /bin/zsh username

このコマンドでは、ユーザー username のデフォルトシェルが /bin/zsh に変更されます。

chshコマンドの注意点

chsh コマンドを使用する際には、いくつかの注意点があります。

  • 指定できるシェルは、/etc/shells に記載されているものに限られます。このファイルにリストされていないシェルを指定すると、エラーが発生します。
  • シェルを変更する際には、必ず正しいパスを指定してください。存在しないパスや無効なシェルを指定すると、ログインができなくなる可能性があります。
  • シェルを変更した場合、次回のログインから新しいシェルが適用されますが、現在のセッションでは変更されません。

まとめ

chsh コマンドは、Linuxシステムでユーザーのデフォルトシェルを変更するために使用されるシンプルかつ便利なコマンドです。ユーザーが自分のシェルをカスタマイズしたり、システム管理者が他のユーザーのシェル設定を変更する際に非常に役立ちます。シェルの選択によってユーザーの作業環境が大きく変わるため、必要に応じてシェルを変更できるchshコマンドを活用しましょう。