Linuxで空のパスワードを持つユーザーを見つける方法は?


13

Linuxで空のパスワードを持つユーザーを見つける方法は?

回答:


15

これは、AndreKRの答えのより短く正確なバージョンです。

sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

呼び出しは1つだけcutで、以下の形式のエントリを検索します。

foo:!: ...
bar:*: ...
baz:: ...

本当に空にするだけの場合:

sudo getent shadow | grep '^[^:]*::' | cut -d: -f1

GNUをお持ちの場合grepcut完全に排除できます。

sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'

または

sudo getent shadow | grep -Po '^[^:]*(?=::)'


2

のエントリに/etc/shadow/はパスワードハッシュがありません。ただし、それらを表示するには、rootとしてログインする必要があります。


2

暗号化されたパスワードは、/ etc / shadowの2番目のフィールドです。

2番目のフィールドが空の場合、パスワードは空です:

awk -F":" '($2 == "") {print $1}' /etc/shadow

!そして、*無効なパスワード(ユーザーがログインすることはできません)です。

awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow

0

ユーザー「user」は空のパスワードを持っていますか?

getent shadow | grep 'user:\$' | cut -d':' -f 2 | grep '\w' -c -m 1  

失敗すると1を返します-パスワードは空ではありません
成功すると0を返します-パスワードが設定されます

これが正確であることを願って

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.