อ๊ะเพื่อให้ผู้ใช้ทั่วไปทั้งหมดอยู่ในเงามืด


8

ฉันมีสคริปต์

ฉันต้องการที่จะได้รับผู้ใช้ปกติทั้งหมดของฉันจาก/etc/shadowเช่นผู้ใช้ทุกคนซึ่งในระยะที่สองในแฟ้มเงาเริ่มต้นด้วยหรือ$!$

รูปแบบของฉันคือ

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

มันใช้งานไม่ได้ตอนนี้


มันจะต้องตกใจหรือไม่? :-)
Rinzwind

คำตอบ:


11

คุณต้องหลบหนี$เพราะมันเป็นถ่านพิเศษสำหรับ "End of Line" ที่คล้ายกับ^"Beginning of Line"

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

+1 จับดี :)
Rinzwind

ขอบคุณมันใช้งานได้ ฉันแค่ต้องไม่รวมผู้ใช้รูท
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.