리눅스에서 빈 암호를 가진 사용자를 어떻게 찾을 수 있습니까?


13

리눅스에서 빈 암호를 가진 사용자를 어떻게 찾을 수 있습니까?

답변:


15

이것은 AndreKR의 대답에 대한 더 짧고 정확한 버전입니다.

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

한 번만 호출하면 cut아래 양식 중 하나 를 찾을 수 있습니다.

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

당신이 진정으로 비우기를 원한다면 :

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

GNU가 있다면 완전히 grep제거 할 수 있습니다 cut.

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

또는

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

8
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1

2

그들의 항목 /etc/shadow/에는 암호 해시가 없습니다. 그래도 볼 수 있으려면 루트로 로그인해야합니다.


2

암호화 된 비밀번호는 / etc / shadow의 두 번째 필드입니다.

두 번째 필드가 비어 있으면 암호가 비어 있습니다.

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.