Awk để có được tất cả người dùng thường xuyên của tôi trong bóng tối


8

Tôi có một kịch bản.

Tôi muốn nhận tất cả người dùng thông thường của mình, /etc/shadowví dụ: tất cả người dùng có thuật ngữ thứ hai trong tệp bóng bắt đầu bằng $hoặc !$.

Mẫu của tôi là

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

Nó không hoạt động bây giờ.


nó có phải là awk không? :-)
Rinzwind

Câu trả lời:


11

Bạn cần phải thoát khỏi $, vì nó là một char đặc biệt cho "End of Line" giống như ^"Beginning of Line".

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

+1 bắt tốt :)
Rinzwind

Cảm ơn, nó hoạt động. Tôi chỉ cần không bao gồm người dùng root
danaso

1
Đơn giản hóa: awk -F: '$2 ~ /^!?\$/ {print $1}'- Điều này kết hợp hai bài kiểm tra khớp và cho biết "khớp với ký hiệu đô la ở đầu trường, tùy chọn ( ?) đứng trước dấu !"
Tạm dừng cho đến khi có thông báo mới.

4

Tất cả người dùng có mật khẩu được đặt có thể được liệt kê như thế này:

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.