各ユーザーのデフォルトシェルを返します。

各ユーザーのデフォルトシェルを返します。

各ユーザーの既定のシェルを表示するコマンドを一緒に作成しようとしています。研究では、たとえばデフォルトのシェルを変更したchsh -s /bin/kshが、現在の操作を実行していないコマンドのほとんどを見つけることができました。

CentOSでこれを達成する方法を知っている人はいますか?

答え1

別の方法

getent passwd | cut -d: -f1,7

答え2

/etc/passwdユーザー名とログインシェルのリスト、およびシステム内のすべてのユーザーアカウントに関するその他の関連情報を含むこのファイルを解析できます。

ユーザー名は:区切りの最初のフィールドに保存され、ログインシェルは7番目(最後)のフィールドに保存されます。

awkしたがって、次の形式を使用してフィールドを印刷できます。

awk -F':' '{ print $1 " " FS " " $NF }' /etc/passwd

ldapローカルファイルシステムを使用しない同様のサービスを使用している場合は、次の情報を使用して情報を取得した後、次のものをgetent passwd使用できます。nsswitchawk

getent passwd | awk -F':' '{ print $1 " " FS " " $NF }'

例:

% awk -F':' '{ print $1 " " FS " " $NF }' /etc/passwd
root : /bin/bash
daemon : /usr/sbin/nologin
bin : /usr/sbin/nologin
sys : /usr/sbin/nologin
sync : /bin/sync
games : /usr/sbin/nologin
man : /usr/sbin/nologin
lp : /usr/sbin/nologin
mail : /usr/sbin/nologin

答え3

この情報は/etc/passwdに保存されます。

cut -d: -f1,7 /etc/passwd

関連情報