/etc/passwd でユーザーのシェルを確認する
前のステップでは、echo $SHELL
を使用して現在使用しているシェルを確認しました。これは現在のターミナルセッションで起動されたシェルです。ただし、システムは各ユーザーの デフォルト のログインシェルを設定ファイルに記録しています。
この設定ファイルは /etc/passwd
です。このファイルには、システム上のすべてのユーザーに関する情報が含まれています。/etc/passwd
の各行はユーザーアカウントを表し、コロン (:
) で区切られたフィールドに分割されています。各行の最後のフィールドは、ユーザーのデフォルトのログインシェルを指定しています。
/etc/passwd
の内容を表示するには、cat
コマンドを使用できます。labex
ユーザーの行のみに関心があるので、cat
と grep
コマンドを組み合わせて出力をフィルタリングすることができます。grep
は、ファイル内のテキストパターンを検索するための強力なツールです。
ターミナルに以下のコマンドを入力し、Enter キーを押します。
cat /etc/passwd | grep labex
このコマンドを分解してみましょう。
cat /etc/passwd
: このコマンドは /etc/passwd
ファイルの内容を読み取り、標準出力に出力します。
|
: これはパイプです。左側のコマンド (cat /etc/passwd
) の出力を受け取り、右側のコマンド (grep labex
) の入力として送ります。
grep labex
: このコマンドは、受け取った入力から "labex" という文字列を含む行を検索し、それらの行を出力します。
次のような 1 行の出力が表示されるはずです。
labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh
この行には、コロンで区切られた labex
ユーザーに関するいくつかの情報が含まれています。フィールドは(順番に)次のとおりです。
- ユーザー名 (
labex
)
- パスワード(
x
で表され、実際のパスワードハッシュはセキュリティ上の理由で別の場所に保存されています)
- ユーザー ID (UID) (
5000
)
- グループ ID (GID) (
5000
)
- ユーザー情報 (GECOS フィールド) (
LabEx user,,,
)
- ホームディレクトリ (
/home/labex
)
- デフォルトのログインシェル (
/usr/bin/zsh
)
最後のフィールド /usr/bin/zsh
は、labex
ユーザーのデフォルトのログインシェルが実際に zsh
であることを確認しており、echo $SHELL
で見た結果と一致しています。
続ける をクリックして次に進みます。