Πώς να κάνετε λίστα χρηστών στο Linux
Γρήγοροι Σύνδεσμοι
Βασικά Takeaways
- Μπορείτε να καταχωρήσετε λογαριασμούς χρηστών στο Linux χρησιμοποιώντας εντολές όπως “cat /etc/passwd” ή “getent passwd”.
- Οι ξένοι και αχρησιμοποίητοι λογαριασμοί απλώς προσθέτουν ακαταστασία στο σύστημά σας και ενδέχεται να παρουσιάζουν ακόμη και κίνδυνο ασφάλειας, ανάλογα με την κατάστασή σας.
Το Linux είναι ένα λειτουργικό σύστημα πολλών χρηστών, επομένως η δημιουργία πολλών λογαριασμών χρηστών είναι εύκολη. Με τον καιρό, είναι εύκολο να χάσετε την παρακολούθηση των λογαριασμών που απαιτούνται. Η καταχώριση λογαριασμών χρηστών σάς βοηθά να τους διαχειριστείτε.
Συνήθως, οι επιπλέον λογαριασμοί απλώς προσθέτουν ακαταστασία, αλλά μπορούν επίσης να ανοίξουν
τρωτά σημεία ασφαλείας
.
Η πρόοδος της τεχνολογίας συχνά φέρνει τα δικά της νέα προβλήματα. Μόλις οι υπολογιστές μπόρεσαν να υποστηρίξουν πολλούς χρήστες, έγινε εμφανής η ανάγκη να περιφράσσεται και να περικλείεται η εργασία κάθε ατόμου από όλους τους άλλους. Αυτό οδήγησε στην ιδέα των λογαριασμών χρηστών. Κάθε χρήστης έχει ένα όνομα ταυτότητας και έναν κωδικό πρόσβασης. Αυτά είναι τα διαπιστευτήρια που τους επιτρέπουν να συνδεθούν στον λογαριασμό τους. Τα αρχεία τους φυλάσσονται σε χώρο που είναι ιδιωτικός για κάθε χρήστη.
Σε ένα πολυάσχολο σύστημα, είναι εύκολο να παραβλέψουμε ποιους λογαριασμούς έχετε δημιουργήσει και ποιους δεν χρειάζονται πλέον. Από την άποψη της ασφάλειας, είναι κακή πρακτική να διατηρείτε λογαριασμούς χρηστών που δεν χρειάζεται πλέον να διαμορφώνονται και να είναι προσβάσιμοι στον υπολογιστή σας. Θα πρέπει να αφαιρέσετε αυτούς τους χρήστες.
Ακόμα κι αν δεν έχετε άλλα άτομα που χρησιμοποιούν τον υπολογιστή σας, ίσως έχετε δημιουργήσει μερικούς λογαριασμούς απλώς για να μάθετε πώς να το κάνετε ή για να μάθετε και να εξασκήσετε τις διαδικασίες διαχείρισης.
Το πρώτο βήμα είναι να καταχωρίσετε τους λογαριασμούς χρηστών που έχουν ρυθμιστεί στον υπολογιστή σας. Αυτό σας επιτρέπει να τα ελέγξετε και να κάνετε μια κλήση κρίσης, η οποία μπορεί να διαγραφεί. Υπάρχουν διάφοροι τρόποι για να καταγράψετε τους χρήστες. Ανεξάρτητα από τη διανομή που χρησιμοποιείτε, αυτές οι τεχνικές θα λειτουργούν για εσάς χωρίς να χρειάζεται να εγκαταστήσετε εφαρμογές ή βοηθητικά προγράμματα.
Λίστα χρηστών με την εντολή cat
Μια λίστα με τους διαμορφωμένους χρήστες διατηρείται, μαζί με πληροφορίες για κάθε χρήστη, στο αρχείο “/etc/passwd”. Αυτό είναι ένα αρχείο κειμένου που οι τακτικοί χρήστες μπορούν να παραθέσουν στο παράθυρο του τερματικού. Δεν χρειάζεται να χρησιμοποιήσετε
sudo
για να δείτε το αρχείο “/etc/passwd”.
Μπορούμε να χρησιμοποιήσουμε το
cat
εντολή για αποστολή των περιεχομένων του αρχείου “/etc/passwd” στο παράθυρο του τερματικού. Αυτό θα εμφανίσει ολόκληρο το
περιεχόμενο
του αρχείου. Αυτό σημαίνει ότι θα δείτε επίσης τις καταχωρίσεις για λογαριασμούς χρηστών που ανήκουν σε διαδικασίες και στο σύστημα και όχι σε άτομα.
cat /etc/passwd
Υπάρχει μια σειρά πυκνών πληροφοριών που αναφέρονται για κάθε λογαριασμό χρήστη.
Οι πληροφορίες για τον λογαριασμό χρήστη που ονομάζεται “dave” περιέχουν αυτές τις πληροφορίες, με άνω και κάτω τελείες “
:
” μεταξυ τους.
-
dave
: Το όνομα του λογαριασμού χρήστη. Συνήθως το όνομα του ατόμου που κατέχει τον λογαριασμό. -
Χ
: Κάποτε, αυτό κρατούσε τον κωδικό πρόσβασης για τον λογαριασμό. Σήμερα, οι κωδικοί πρόσβασης αποθηκεύονται στο αρχείο “/etc/shadow”. Το “x” σημαίνει ότι ο κωδικός πρόσβασης βρίσκεται σε αυτό το αρχείο. -
1000
: Το αναγνωριστικό χρήστη για αυτόν τον λογαριασμό. Όλοι οι λογαριασμοί χρηστών έχουν ένα μοναδικό αριθμητικό αναγνωριστικό. Οι λογαριασμοί κανονικών χρηστών ξεκινούν συνήθως από 1000, με κάθε νέο λογαριασμό να παίρνει το επόμενο δωρεάν αναγνωριστικό, όπως 1001, 1002 κ.λπ. -
1000
: Το αναγνωριστικό ομάδας της προεπιλεγμένης ομάδας στην οποία ανήκει ο χρήστης. Σε κανονικές συνθήκες, η προεπιλεγμένη ομάδα έχει την ίδια τιμή με το αναγνωριστικό χρήστη. -
dave,,,
: Μια συλλογή προαιρετικών επιπλέον πληροφοριών για τον χρήστη. Αυτό το πεδίο περιέχει δεδομένα με κόμματα “
,
” μεταξύ τους. Μπορούν να κρατήσουν πράγματα όπως το πλήρες όνομα του χρήστη, τον αριθμό του γραφείου του και τον αριθμό τηλεφώνου του. Η καταχώρηση για τον λογαριασμό χρήστη “mary” δείχνει το πλήρες όνομά της είναι Mary Quinn. -
/
home
/dave
: Η διαδρομή προς τον αρχικό φάκελο του χρήστη. -
/bin/bash
: Το προεπιλεγμένο κέλυφος για αυτόν τον χρήστη.
Αν διοχετεύσουμε την έξοδο από αυτήν την εντολή μέσω του
wc
χρησιμότητα και χρήση του
-l
(γραμμές) επιλογή μπορούμε να μετρήσουμε τις γραμμές στο αρχείο. Αυτό θα μας δώσει τον αριθμό των λογαριασμών που έχουν διαμορφωθεί σε αυτόν τον υπολογιστή.
cat /etc/passwd | wc -l
Αυτός ο αριθμός περιλαμβάνει τους λογαριασμούς συστήματος και τους χρήστες που δημιουργούνται από εφαρμογές. Υπάρχουν περίπου 400 τακτικοί χρήστες που έχουν ρυθμιστεί σε αυτόν τον υπολογιστή. Το αποτέλεσμά σας είναι πιθανό να είναι πολύ λιγότερο.
Με τόσους πολλούς λογαριασμούς, είναι πιο βολικό στη χρήση
less
για να δείτε το αρχείο “/etc/passwd”.
less /etc/passwd
Χρησιμοποιώντας
less
σας επιτρέπει επίσης να κάνετε αναζήτηση εντός της εξόδου, εάν θέλετε να αναζητήσετε έναν συγκεκριμένο λογαριασμό χρήστη.
Η εντολή awk
Χρησιμοποιώντας την
awk
εντολή μπορούμε να εμφανίσουμε μόνο το όνομα χρήστη. Αυτό μπορεί να είναι χρήσιμο όταν γράφετε ένα σενάριο που πρέπει να κάνει κάτι σε πολλούς λογαριασμούς χρηστών. Η καταχώριση των ονομάτων των λογαριασμών χρήστη και η ανακατεύθυνσή τους σε ένα αρχείο κειμένου μπορεί να είναι μια εξαιρετική εξοικονόμηση χρόνου. Το μόνο που χρειάζεται να κάνετε είναι να αντιγράψετε και να επικολλήσετε την υπόλοιπη εντολή σε κάθε γραμμή.
Θα πούμε στο awk να χρησιμοποιήσει την άνω και κάτω τελεία “:” ως διαχωριστικό πεδίου και να εκτυπώσει το πρώτο πεδίο. Θα χρησιμοποιήσουμε την επιλογή -F (διαχωριστής πεδίου).
awk -F: '{print $1}' /etc/passwd
Τα ονόματα των λογαριασμών χρήστη γράφονται στο παράθυρο του τερματικού χωρίς καμία από τις άλλες πληροφορίες λογαριασμού.
Η κομμένη εντολή
Μπορούμε να πετύχουμε το ίδιο πράγμα χρησιμοποιώντας το
cut
εντολή. Πρέπει να χρησιμοποιήσουμε το
-d
(οριοθέτη) και ζητήστε του να επιλέξει μόνο το πρώτο πεδίο, χρησιμοποιώντας το
-f
επιλογή (πεδία).
cutr -d: -f1
Αυτό παραθέτει όλους τους λογαριασμούς χρηστών, συμπεριλαμβανομένου του συστήματος και άλλων λογαριασμών που
δεν είναι
ανθρώπινοι.
Η εντολή compgen
ο
compgen
η εντολή μπορεί να χρησιμοποιηθεί με το
-u
(χρήστης) επιλογή για τη λίστα των λογαριασμών χρηστών. Θα διοχετεύσουμε την έξοδο μέσω του
column
εντολή για τη λίστα των λογαριασμών χρηστών σε στήλες, αντί για μια μεγάλη λίστα με ένα μόνο όνομα χρήστη ανά γραμμή.
compgen -u | column
Και πάλι, οι πρώτοι λογαριασμοί χρηστών που αναφέρονται ανήκουν σε διαδικασίες και όχι σε ανθρώπους.
UID MIN και UID MAX
Στους λογαριασμούς χρηστών δίνεται ένα αριθμητικό αναγνωριστικό, το οποίο είδαμε νωρίτερα. Συνήθως, οι λογαριασμοί κανονικών ανθρώπινων χρηστών ξεκινούν από 1000 και οι λογαριασμοί συστήματος, μη ανθρώπινοι, χρήστες ξεκινούν από 0. Το αναγνωριστικό του ριζικού λογαριασμού είναι 0.
Εάν μπορούμε να επαληθεύσουμε τα χαμηλότερα και υψηλότερα δυνατά αναγνωριστικά χρήστη, μπορούμε να χρησιμοποιήσουμε αυτές τις πληροφορίες για να επιλέξουμε τους λογαριασμούς χρηστών που βρίσκονται μεταξύ αυτών των δύο τιμών. Αυτό θα μας επιτρέψει να επιλέξουμε μόνο τους λογαριασμούς χρηστών που ανήκουν σε πραγματικά άτομα.
Το Linux παρακολουθεί αυτές τις δύο τιμές χρησιμοποιώντας παραμέτρους διαμόρφωσης που ονομάζονται
UID_MIN
και
UID_MAX
. Αυτά διατηρούνται στο αρχείο “/etc/login.defs”. Μπορούμε εύκολα να δούμε αυτές τις τιμές χρησιμοποιώντας
grep
.
Θα χρησιμοποιήσουμε το
-E
(εκτεταμένο regex) επιλογή. Η συμβολοσειρά αναζήτησής μας αναζητά γραμμές που ξεκινούν με “UID_MIN” ή “UID_MAX” στο αρχείο “/etc/login.defs”. το καρέ”
^
” αντιπροσωπεύει την αρχή μιας γραμμής.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
Το εύρος για τα αναγνωριστικά χρηστών σε αυτόν τον υπολογιστή είναι από 1000 έως 60.000.
Η εντολή getent
ο
getent
εντολή διαβάζει πληροφορίες από βάσεις δεδομένων συστήματος. Μπορούμε να του πούμε να παραθέσει τις εγγραφές στο αρχείο “/etc/passwd” χρησιμοποιώντας το “passwd” ως παράμετρο.
getent passwd
Αυτό μας δίνει την ίδια ανάγνωση που μπορούμε να χρησιμοποιήσουμε
cat
. Αλλά πού
getent
λάμπει είναι αποδεχόμενοι τιμές γνωστές ως “κλειδιά”. Ένα κλειδί υπαγορεύει ποιες πληροφορίες
getent
εκθέσεις για. Αν θέλουμε να δούμε την καταχώρηση για έναν μεμονωμένο χρήστη, μπορούμε να περάσουμε το όνομα του λογαριασμού χρήστη του στη γραμμή εντολών.
getent passwd Sarah
Σημειώστε ότι το όνομα του λογαριασμού χρήστη κάνει διάκριση πεζών-κεφαλαίων.
getent passwd sarah
Μπορούμε επίσης να περάσουμε στο άνω και κάτω όριο των αναγνωριστικών λογαριασμών χρήστη που θέλουμε να δούμε. Για να δούμε απολύτως όλους τους λογαριασμούς κανονικών χρηστών, μπορούμε να χρησιμοποιήσουμε τις τιμές από
UID_MIN
και
UID_MAX
.
getent passwd {1000..60000}
Αυτό παίρνει λίγο χρόνο για να τρέξει. Τελικά, θα επιστρέψετε στη γραμμή εντολών.
Ο λόγος για τον μεγάλο χρόνο εκτέλεσης είναι αυτός
getent
προσπαθεί να βρει αντιστοιχίσεις για όλες τις τιμές του λογαριασμού χρήστη μέχρι το 60000.
Ας δούμε ποιο είναι το υψηλότερο αναγνωριστικό λογαριασμού χρήστη. Θα χρησιμοποιήσουμε το
cut
εντολή, αλλά αυτή τη φορά θα ζητήσουμε το πεδίο τρία, το πεδίο ID χρήστη. Θα διοχετεύσουμε την έξοδο
sort
και χρησιμοποιήστε το
-g
επιλογή (γενική αριθμητική ταξινόμηση).
cut -d: -f3 /etc/passwd | sort -g
Η υψηλότερη τιμή αναγνωριστικού ενός λογαριασμού χρήστη που ανήκει σε ανθρώπους είναι 1401.
Το αναγνωριστικό χρήστη 65534 εκχωρείται στην έννοια του συστήματος “κανένας”.
getent passwd {65534..65534}
Ξέρουμε λοιπόν ότι αντί να χρησιμοποιούμε το
UID_MAX
τιμή 60000, σε αυτόν τον υπολογιστή μπορούμε να χρησιμοποιήσουμε μια πιο ρεαλιστική τιμή όπως το 1500. Αυτό θα επιταχύνει όμορφα τα πράγματα. Θα διοχετεύσουμε επίσης την έξοδο
cut
για να εξαγάγετε μόνο τα ονόματα των λογαριασμών χρηστών.
getent passwd {1000..1500} | κόβω -d: -f1
Οι χρήστες αναφέρονται στη λίστα και επιστρέφουμε αμέσως στη γραμμή εντολών.
Αντί να διοχετεύεται η έξοδος
cut
ας διοχετεύσουμε την έξοδο
wc
και μετρήστε τις γραμμές για άλλη μια φορά. Αυτό θα μας δώσει τον αριθμό των “πραγματικών” λογαριασμών χρηστών.
getent passwd {1000..1500} | wc -l
Μπορούμε τώρα να δούμε ότι σε αυτόν τον υπολογιστή, οριστικά, υπάρχουν 400 διαμορφωμένοι λογαριασμοί χρηστών που ανήκουν σε ανθρώπους.
Δύναμη και Απλότητα
Μία από αυτές τις τεχνικές είναι βέβαιο ότι ταιριάζει στις ανάγκες σας όταν πρέπει να ελέγξετε τους λογαριασμούς χρηστών σε έναν υπολογιστή Linux. Αυτές οι εντολές πρέπει να υπάρχουν σε όλες τις διανομές και καμία από αυτές δεν απαιτεί
sudo
πρόσβαση, ώστε να είναι όλα διαθέσιμα σε κάθε χρήστη.
VIA:
HowToGeek.com
