Linux ubuntuをインストールすると、bash シェルがデフォルト設定として使用されています。しかし、実際には他のシェルも使用できることをご存知ですか?
Linux で新しいユーザーを作成する際、ユーザーが使用する基本シェルを指定できます。この時に使用するオプションが useradd
コマンドの -s
オプションです。すでに作成されたユーザーであれば、usermod -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
オプションと使用可能なシェルを明確に理解し、正しいシェル設定でアカウントを安全に管理しましょう!
コメントはありません。