모든 일반 사용자를 그림자 상태로 만드는 Awk


8

스크립트가 있습니다.

/etc/shadow쉐도우 파일의 두 번째 용어가 $또는로 시작하는 모든 사용자 로부터 모든 일반 사용자를 얻고 싶습니다 !$.

내 패턴은

sudo getent shadow | awk -F: '$2 ~ /^$/ || /^!$/ {print $1}'

지금은 작동하지 않습니다.


어색해야합니까? :-)
Rinzwind 2009 년

답변:


11

"Beginning of Line" $과 마찬가지로 "End of Line"의 특수 문자이므로을 이스케이프 처리해야합니다 ^.

sudo getent shadow | awk -F: '$2 ~ /^\$/ || $2 ~  /^!\$/ {print $1}'

+1 good catch :)
Rinzwind 2016 년

고마워요. 루트가 아닌 사용자 포함에 난 그냥 필요
danaso

1
단순화 : awk -F: '$2 ~ /^!?\$/ {print $1}'-두 개의 일치 테스트를 결합하여 "필드의 시작 부분에 달러 기호 일치 (선택 사항) (선택 사항 ?) 앞에 !"
추가 통지가있을 때까지 일시 중지됨

4

비밀번호가 설정된 모든 사용자는 다음과 같이 나열 될 수 있습니다.

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.