/etc/shells:有効なログインシェルの一覧

/etc/shells

/etc/shellsについての概要と詳細

/etc/shellsとは

/etc/shells は、LinuxやUNIXシステムで利用できるログインシェルのパス一覧を管理する設定ファイルです。ユーザーアカウント作成時や、chshコマンド(シェル変更)時に、選択可能なシェルとして認識されるものを列挙します。

ファイルの内容と構成

各行に1つずつ、シェル実行ファイルの絶対パスを記述します。コメント行は # で始めます。

# /etc/shells の例
/bin/sh
/bin/bash
/usr/bin/zsh
/usr/bin/fish
/usr/bin/tcsh
  • 1行ごとに1つのシェルパスを記述
  • コメントや空行も可
  • システムにインストールされていないパスを含めないことが推奨

主な役割

  • ユーザーが選択できるログインシェルの制限と明示
  • chsh(Change Shell)コマンドによるシェル変更時の参照
  • FTPやその他の認証システムで有効なシェルの判定

シェルの変更方法例

$ chsh -s /bin/zsh

(このとき /etc/shells に /bin/zsh が登録されていないと変更できません)

注意点

  • このファイルに登録されていないパスへのシェル変更は原則できません。
  • root 権限で編集します(sudo vi /etc/shells など)。
  • FTPサーバでは /etc/shells に登録されていないユーザーのログインを拒否することがあります。

まとめ

/etc/shells は、システムで利用できるログインシェルを制御するシンプルな設定ファイルです。シェルの追加・削除やユーザーごとのシェル変更を行う際は、内容を正しく管理しましょう。