Jeśli masz dostęp do roota na komputerze, możesz wykonać następujące czynności:
sudo grep -vE '^[^*!]+:[*!]:' /etc/shadow | sort | cut -d: -f1 | while read user; do id $user; done | column -ts' ,' | vi '+set nowrap' -
Jak to działa
Zostań rootem, aby odczytać plik cienia. Wymagane są uprawnienia roota tylko wtedy, gdy chcesz sprawdzić, czy użytkownik ma ustawione hasło (użytkownik), w przeciwnym razie możesz cat /etc/passwd
zamiast sudo grep ...
:
sudo
Pokaż tylko użytkowników, którzy mają ustawione hasło:
grep -vE '^[^*!]+:[*!]:' /etc/shadow
Sortuj według nazwy użytkownika:
sort
Odrzuć wszystkie informacje oprócz nazwy użytkownika:
cut -d: -f1
Iteruj przez nazwy użytkowników i wzbogacaj je o informacje grupowe:
while read user; do id $user; done
Sformatuj dane wejściowe w kolumnach:
column -ts' ,'
Użyj vi, aby wyświetlić wynik:
vi '+set nowrap' -
Jeśli nie masz dostępu do konta root,
spróbuj czegoś takiego:
cut -d: -f1 /etc/passwd | sort | while read user; do id $user; done | sed 's/\(\()\|^\)[^(]*(\|)\)/ /g' | column -t
Jego wyniki są nieco inne, ale pozostawiam to jako ćwiczenie dla czytelnika, aby połączyć dwie części w tej odpowiedzi w coś, co w pełni pasuje do zadania. (Czy po prostu nie kochasz sed
?)
cut
. W przypadku alfabetu istniejesort
. Jeśli potrzebujesz nazw grup, graj z łączeniem (które może być w stanie pokazać tylko podzbiór kolumn, btw).