【Linux】ユーザにパスワードが設定されているかを確認する


この記事はプロモーションを含みます。

Linux

ユーザにパスワードが設定されているのか、設定されていないのかを確認する方法を説明します。

確認方法は簡単で、以下のコマンドを実行するだけです。

cat /etc/shadow | grep {確認するユーザ}

「/etc/shadow」とは??
Linuxのパスワードなどが管理されているテキストファイルです。
root権限でしか参照出来ません。

実際のユーザを例に説明します。
今回は「ansible」と「awx」ユーザを確認してみます。

[root@localhost home]# cat /etc/shadow | grep ansible
ansible:$6$GTUdMVglTEd.x4cG$WdPOTqPWqzCUoNiwZjTKpKvJvpqYoUmnMfo7vmYufqTHyYd3DN1vjE1Zy/xloigQGP39DkLCJRDD0RAZoAr.w1:19029:0:99999:7:::

[root@localhost home]# cat /etc/shadow | grep awx
awx:!!:19029:0:99999:7:::

コマンドの実行結果の黄色文字部分(第2フィールド)を確認します。
フィールドはコロン[:]区切りなので、第2フィールドは、1つ目のコロンの後ろになります。(各フィールドの説明は後述します)

第2フィールドが「!!」ではなく、暗号化されたパスワードの文字列が表示されている場合は、パスワードが設定されている状態となります。

上記より今回の例における、パスワードの設定状態は以下のようになります。
・ansible ユーザ:パスワードが設定されている
・awx ユーザ:パスワードが設定されていない

各フィールドは以下のような情報を保持しています。

フィールド内容
1ユーザ名
2パスワード(MD5で暗号化されている)
「!!」はパスワード無し
3パスワード変更日
(1970年1月1日からの日数)
4変更可能日数(パスワードを変更出来るまでの日数)
「0」はいつでも変更可能
5パスワード有効期限(パスワードを変更しなくてもよい日数)
6警告(有効期限の〇日前に警告するか)
7ログインしないと無効になる日数
8アカウント有効期限(アカウント失効までの日数)
9未使用

記事は以上です。あまり使用しないユーザやミドル導入時に作成されたユーザのパスワードの設定状態を確認する際などに使えるかなと思います。

コメント

タイトルとURLをコピーしました