Linux ubuntuをインストールすると、bash シェルがデフォルト設定として使用されています。しかし、実際には他のシェルも使用できることをご存知ですか?

Linux で新しいユーザーを作成する際、ユーザーが使用する基本シェルを指定できます。この時に使用するオプションが useradd コマンドの -s オプションです。すでに作成されたユーザーであれば、usermod -s コマンドで変更することも可能です。

この記事では、useradd-s オプションで使用可能な主要なシェルとそれぞれの特徴、さらに現在のシステムで使用できるシェルの一覧を確認する方法を整理します。

さまざまなシェルを選択できる useradd -s オプションを考える開発者


1. 主要なシェルの種類と特徴

シェルのパス シェル名 特徴
/bin/bash Bash 最も広く使用される標準シェル。コマンド編集、自動補完機能、スクリプト作成など多様な機能を提供。
/bin/sh Bourne Shell 軽量かつ最小限の機能を提供。スクリプトや制限された環境で主に使用される。
/bin/zsh Z Shell (Zsh) Bashの拡張版。優れた自動補完機能とカスタマイズ機能を提供。最近人気急上昇中。
/bin/ksh Korn Shell 商業的環境で広く使用されたシェル。速度と効率を重視。
/usr/bin/fish Fish Shell 直感的な操作方法と強力な自動補完機能で初心者におすすめのシェル。
/usr/sbin/nologin または /bin/false ログイン不可シェル 直接的なログインを制限する目的で使用。システムアカウントやサービス専用アカウント作成時によく使用される。

2. 現在のシステムで使用可能なシェルを確認する

現在のシステムで使用可能なシェルの一覧は /etc/shells ファイルに保存されています。次のコマンドで確認できます。

cat /etc/shells

出力例:

/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash

このファイルにリストされているシェルのみが useradd コマンドの -s オプションで使用可能です。


3. nologin シェルの正確なパスを確認する

システムでのログイン制限用シェル(nologin)の正確な位置を特定するには、次のコマンドを使用します。

which nologin

出力例:

/usr/sbin/nologin

システムによって異なる場合があるため、必ず確認することをお勧めします。


4. 使用事例の例

Bash シェルを使用するユーザーの追加

sudo useradd -m -s /bin/bash username

Zsh シェルを使用するユーザーの追加

sudo useradd -m -s /bin/zsh username

ログイン不可のシステムユーザーの追加

sudo useradd -r -s /usr/sbin/nologin username

既存ユーザーのシェル変更の例:

sudo usermod -s /usr/sbin/nologin username

変更された結果を確認するコマンド:

cat /etc/passwd | grep username

正常な出力例:

username:x:1004:1004::/home/django:/usr/sbin/nologin

これで useradd-s オプションと使用可能なシェルを明確に理解し、正しいシェル設定でアカウントを安全に管理しましょう!