Nếu bạn có quyền truy cập root trên máy, bạn có thể làm như sau:
sudo grep -vE '^[^*!]+:[*!]:' /etc/shadow | sort | cut -d: -f1 | while read user; do id $user; done | column -ts' ,' | vi '+set nowrap' -
Làm thế nào nó hoạt động
Trở thành root để đọc tập tin bóng. Bạn chỉ yêu cầu quyền root nếu bạn muốn kiểm tra xem người dùng có đặt mật khẩu không (người dùng), nếu không bạn chỉ có thể cat /etc/passwd
thay vì sudo grep ...
:
sudo
Chỉ hiển thị người dùng có mật khẩu được đặt:
grep -vE '^[^*!]+:[*!]:' /etc/shadow
Sắp xếp theo tên người dùng:
sort
Hủy tất cả thông tin ngoại trừ tên người dùng:
cut -d: -f1
Lặp lại thông qua tên người dùng và làm phong phú nó với thông tin nhóm:
while read user; do id $user; done
Định dạng đầu vào thành các cột:
column -ts' ,'
Sử dụng vi để xem kết quả:
vi '+set nowrap' -
Nếu bạn không có quyền truy cập root,
thử cái gì đó như thế này:
cut -d: -f1 /etc/passwd | sort | while read user; do id $user; done | sed 's/\(\()\|^\)[^(]*(\|)\)/ /g' | column -t
Đầu ra của nó hơi khác một chút, nhưng tôi để nó như một bài tập cho người đọc để kết hợp hai phần trong câu trả lời này thành một cái gì đó hoàn toàn phù hợp với công việc. (Không phải bạn chỉ yêu sed
?)
cut
. Đối với bảng chữ cái, cósort
. Nếu bạn cần tên nhóm, hãy chơi với phép nối (mà thực tế có thể chỉ hiển thị một tập hợp con của các cột, btw).