Πώς να διαγράψετε έναν χρήστη σε Linux (και να καταργήσετε κάθε ίχνος)

Η διαγραφή ενός χρήστη στο Linux απαιτεί περισσότερα από ό, τι νομίζετε. Εάν είστε διαχειριστής συστήματος, θα θέλετε να εκκαθαρίσετε όλα τα ίχνη του λογαριασμού και την πρόσβασή του από τα συστήματά σας. Θα σας δείξουμε τα βήματα που πρέπει να ακολουθήσετε.
Εάν θέλετε απλώς να διαγράψετε έναν λογαριασμό χρήστη από το σύστημά σας και δεν ανησυχείτε για τον τερματισμό τυχόν τρεχουσών διαδικασιών και άλλων εργασιών εκκαθάρισης, ακολουθήστε τα βήματα στην ενότητα "Διαγραφή λογαριασμού χρήστη" παρακάτω. Θα χρειαστείτε την deluser
εντολή για διανομές που βασίζονται στο Debian και την userdel
εντολή για άλλες διανομές Linux.
Λογαριασμοί χρηστών σε Linux
Από τότε που τα πρώτα συστήματα κοινής χρήσης χρόνου εμφανίστηκαν στις αρχές της δεκαετίας του 1960 και έφεραν μαζί τους τη δυνατότητα πολλών χρηστών να εργάζονται σε έναν μόνο υπολογιστή, υπήρξε ανάγκη να απομονωθούν και να διαχωριστούν τα αρχεία και τα δεδομένα κάθε χρήστη από όλους τους άλλους χρήστες. Έτσι δημιουργήθηκαν λογαριασμοί χρηστών και κωδικοί πρόσβασης.
Οι λογαριασμοί χρηστών έχουν γενικά διοικητικά έξοδα. Πρέπει να δημιουργηθούν όταν ο χρήστης χρειάζεται για πρώτη φορά πρόσβαση στον υπολογιστή. Πρέπει να αφαιρεθούν όταν δεν απαιτείται πλέον αυτή η πρόσβαση. Στο Linux, υπάρχει μια ακολουθία βημάτων που πρέπει να ακολουθηθούν για να αφαιρέσετε σωστά και μεθοδικά τον χρήστη, τα αρχεία και τον λογαριασμό τους από τον υπολογιστή.
Εάν είστε ο διαχειριστής του συστήματος, η ευθύνη σας φέρει. Δείτε πώς μπορείτε να το κάνετε.
Το σενάριό μας
Υπάρχουν πολλοί λόγοι για τους οποίους μπορεί να χρειαστεί να διαγραφεί ένας λογαριασμός. Ένα μέλος του προσωπικού μπορεί να μετακομίσει σε διαφορετική ομάδα ή να αποχωρήσει εντελώς από την εταιρεία. Ο λογαριασμός μπορεί να έχει δημιουργηθεί για βραχυπρόθεσμη συνεργασία με έναν επισκέπτη από άλλη εταιρεία. Οι ομάδες είναι συχνές στην ακαδημαϊκή κοινότητα, όπου ερευνητικά έργα μπορούν να καλύπτουν τμήματα, διαφορετικά πανεπιστήμια, ακόμη και εμπορικές οντότητες. Στο τέλος του έργου, ο διαχειριστής του συστήματος πρέπει να εκτελέσει την υπηρεσία καθαρισμού και να αφαιρέσει περιττούς λογαριασμούς.
Το χειρότερο σενάριο είναι όταν κάποιος φεύγει κάτω από ένα σύννεφο εξαιτίας ενός κακού. Τέτοια γεγονότα συμβαίνουν συνήθως ξαφνικά, με μικρή προειδοποίηση. Αυτό δίνει στον διαχειριστή του συστήματος πολύ λίγο χρόνο για να προγραμματίσει, και επείγον να κλείσει, να κλείσει και να διαγραφεί ο λογαριασμός - με αντίγραφο ασφαλείας των αρχείων του χρήστη σε περίπτωση που χρειαστούν για οποιαδήποτε εγκληματολογία μετά το κλείσιμο.
Στο σενάριό μας, θα προσποιούμαστε ότι ένας χρήστης, ο Eric, έχει κάνει κάτι που δικαιολογεί την άμεση απομάκρυνσή του από τις εγκαταστάσεις. Αυτή τη στιγμή δεν το γνωρίζει αυτό, εξακολουθεί να εργάζεται και συνδέεται. Μόλις δώσετε το νεύμα στην ασφάλεια, θα συνοδεύεται από το κτίριο.
Όλα είναι έτοιμα. Όλα τα μάτια είναι πάνω σου.
Ελέγξτε τη σύνδεση
Ας δούμε αν είναι πραγματικά συνδεδεμένος και, εάν είναι, πόσες συνεδρίες εργάζεται. Η who
εντολή θα εμφανίσει ενεργές συνεδρίες.
που
Ο Eric συνδέεται μία φορά. Ας δούμε ποιες διαδικασίες εκτελεί.
Επανεξέταση των διαδικασιών του χρήστη
Μπορούμε να χρησιμοποιήσουμε την ps
εντολή για να απαριθμήσουμε τις διαδικασίες που εκτελεί αυτός ο χρήστης. Η -u
επιλογή (χρήστης) μας επιτρέπει να πούμε ps
να περιορίσουμε την παραγωγή της στις διαδικασίες που εκτελούνται υπό την ιδιοκτησία αυτού του λογαριασμού χρήστη.
ps -u eric
Μπορούμε να δούμε τις ίδιες διαδικασίες με περισσότερες πληροφορίες χρησιμοποιώντας την top
εντολή. top
έχει επίσης μια -U
επιλογή (χρήστη) για να περιορίσει την έξοδο στις διαδικασίες που ανήκουν σε έναν μόνο χρήστη. Σημειώστε ότι αυτή τη φορά είναι ένα κεφαλαίο "U".
κορυφή -U eric
Μπορούμε να δούμε τη μνήμη και τη χρήση της CPU για κάθε εργασία και μπορούμε γρήγορα να αναζητήσουμε οτιδήποτε με ύποπτη δραστηριότητα. Πρόκειται να σκοτώσουμε βίαια όλες τις διαδικασίες του, οπότε είναι ασφαλέστερο να αφιερώσουμε λίγο χρόνο για να ελέγξουμε γρήγορα τις διαδικασίες και να ελέγξουμε και να βεβαιωθούμε ότι άλλοι χρήστες δεν πρόκειται να ενοχληθούν όταν τερματίσετε τις διαδικασίες του λογαριασμού χρήστη eric
.
Δεν φαίνεται να κάνει πολλά, απλά χρησιμοποιώντας less
για να δείτε ένα αρχείο. Είμαστε ασφαλείς για να προχωρήσουμε. Αλλά προτού σκοτώσουμε τις διαδικασίες του, θα παγώσουμε τον λογαριασμό κλειδώνοντας τον κωδικό πρόσβασης.
ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Πώς να χρησιμοποιήσετε την εντολή ps για παρακολούθηση διαδικασιών Linux
Κλείδωμα του λογαριασμού
Θα κλειδώσουμε τον λογαριασμό προτού σκοτώσουμε τις διαδικασίες, γιατί όταν σκοτώσουμε τις διαδικασίες θα αποσυνδεθεί ο χρήστης. Εάν έχουμε ήδη αλλάξει τον κωδικό πρόσβασής του, δεν θα μπορεί να συνδεθεί ξανά.
Οι κρυπτογραφημένοι κωδικοί πρόσβασης χρήστη αποθηκεύονται στο /etc/shadow
αρχείο. Συνήθως δεν θα ενοχλούσατε με αυτά τα επόμενα βήματα, αλλά για να δείτε τι συμβαίνει στο /etc/shadow
αρχείο όταν κλειδώνετε τον λογαριασμό, θα κάνουμε μια μικρή παράκαμψη. Μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή για να δούμε τα δύο πρώτα πεδία της καταχώρησης για τον eric
λογαριασμό χρήστη.
sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow
Η εντολή awk αναλύει πεδία από αρχεία κειμένου και τα χειρίζεται προαιρετικά. Χρησιμοποιούμε την επιλογή -F
(διαχωριστής πεδίου) για να πούμε awk
ότι το αρχείο χρησιμοποιεί άνω και κάτω τελεία :
για να διαχωρίσουμε τα πεδία. Θα αναζητήσουμε μια γραμμή με το μοτίβο «eric» σε αυτό. Για αντιστοίχιση γραμμών, θα εκτυπώσουμε το πρώτο και το δεύτερο πεδίο. Αυτά είναι το όνομα λογαριασμού και ο κρυπτογραφημένος κωδικός πρόσβασης.
Η καταχώριση του λογαριασμού χρήστη εκτυπώνεται για εμάς.
Για να κλειδώσουμε τον λογαριασμό χρησιμοποιούμε την passwd
εντολή. Θα χρησιμοποιήσουμε την -l
επιλογή (κλείδωμα) και θα περάσουμε στο όνομα του λογαριασμού χρήστη για κλείδωμα.
sudo passwd -l eric
Εάν ελέγξουμε /etc/passwd
ξανά το αρχείο, θα δούμε τι συνέβη.
sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow
Ένα θαυμαστικό έχει προστεθεί στην αρχή του κρυπτογραφημένου κωδικού πρόσβασης. Δεν αντικαθιστά τον πρώτο χαρακτήρα, απλώς προστίθεται στην αρχή του κωδικού πρόσβασης. Αυτό είναι το μόνο που απαιτείται για να αποτραπεί ένας χρήστης να μπορεί να συνδεθεί σε αυτόν τον λογαριασμό.
Τώρα που αποτρέψαμε τον χρήστη να συνδεθεί ξανά, μπορούμε να σκοτώσουμε τις διαδικασίες του και να τον αποσυνδεθούμε.
Σκοτώνοντας τις διαδικασίες
Υπάρχουν διαφορετικοί τρόποι για να σκοτώσετε τις διαδικασίες ενός χρήστη, αλλά η εντολή που εμφανίζεται εδώ είναι ευρέως διαθέσιμη και είναι μια πιο σύγχρονη εφαρμογή από μερικές από τις εναλλακτικές. Η pkill
εντολή θα βρει και θα σκοτώσει διαδικασίες. Περνάμε στο σήμα KILL και χρησιμοποιούμε την -u
επιλογή (user).
sudo pkill -KILL -u eric
Επιστρέφετε στη γραμμή εντολών με αποφασιστικά αντι-κλιματικό τρόπο. Για να βεβαιωθούμε ότι συνέβη κάτι, ελέγξτε who
ξανά:
που
Η συνεδρία του έφυγε. Έχει αποσυνδεθεί και οι διαδικασίες του έχουν σταματήσει. Αυτό έχει αποσυρθεί από την κατάσταση. Τώρα μπορούμε να χαλαρώσουμε λίγο και να συνεχίσουμε με το υπόλοιπο σκούπισμα καθώς η ασφάλεια κάνει μια βόλτα στο γραφείο του Eric.
ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Πώς να σκοτώσετε τις διαδικασίες από το τερματικό Linux
Αρχειοθέτηση του αρχικού καταλόγου του χρήστη
Δεν υπάρχει αμφιβολία ότι σε ένα σενάριο όπως αυτό, στο μέλλον θα απαιτείται πρόσβαση στα αρχεία του χρήστη. Είτε ως μέρος μιας έρευνας είτε απλώς και μόνο επειδή η αντικατάστασή τους ίσως χρειαστεί να αναφερθεί στο έργο του προκατόχου τους. Θα χρησιμοποιήσουμε την tar
εντολή για να αρχειοθετήσουμε ολόκληρο τον αρχικό τους κατάλογο.
Οι επιλογές που χρησιμοποιούμε είναι:
- c : Δημιουργήστε ένα αρχείο αρχειοθέτησης.
- στ : Χρησιμοποιήστε το καθορισμένο όνομα αρχείου για το όνομα του αρχείου.
- j : Χρησιμοποιήστε συμπίεση bzip2.
- v : Παρέχετε λεπτομερή έξοδο καθώς δημιουργείται το αρχείο.
sudo tar cfjv eric-20200820.tar.bz / σπίτι / eric
Πολλή έξοδος οθόνης θα μετακινηθεί στο παράθυρο του τερματικού. Για να ελέγξετε ότι το αρχείο έχει δημιουργηθεί, χρησιμοποιήστε την ls
εντολή. Χρησιμοποιούμε τις επιλογές -l
(μεγάλη μορφή) και -h
(αναγνώσιμη από τον άνθρωπο).
ls -lh eric-20200802.tar.bz
Έχει δημιουργηθεί ένα αρχείο 722 MB. Αυτό μπορεί να αντιγραφεί κάπου ασφαλές για μελλοντικό έλεγχο.
Κατάργηση εργασιών cron
Καλύτερα να ελέγξουμε σε περίπτωση που υπάρχουν cron
προγραμματισμένες εργασίες για λογαριασμό χρήστη eric
. Η cron
εργασία είναι μια εντολή που ενεργοποιείται σε καθορισμένες ώρες ή διαστήματα. Μπορούμε να ελέγξουμε εάν υπάρχουν cron
προγραμματισμένες εργασίες για αυτόν τον λογαριασμό χρήστη χρησιμοποιώντας ls
:
sudo ls -lh / var / spool / cron / crontabs / eric
Εάν υπάρχει κάτι σε αυτήν την τοποθεσία, αυτό σημαίνει ότι υπάρχουν cron
ουρές εργασίας για αυτόν τον λογαριασμό χρήστη. Μπορούμε να τα διαγράψουμε με αυτήν την crontab
εντολή. Η -r
επιλογή (κατάργηση) θα καταργήσει τις εργασίες και η -u
επιλογή (χρήστης) λέει crontab
ποιες εργασίες θα καταργηθούν.
sudo crontab -r -u eric
Οι εργασίες διαγράφονται σιωπηλά. Για όλους γνωρίζουμε, εάν ο Έρικ είχε υποψιαστεί ότι επρόκειτο να εκδιωχθεί, θα είχε προγραμματίσει μια κακόβουλη δουλειά. Αυτό το βήμα είναι βέλτιστη πρακτική.
Κατάργηση εργασιών εκτύπωσης
Ίσως ο χρήστης είχε εκκρεμείς εργασίες εκτύπωσης; Για να είμαστε σίγουροι, μπορούμε να εκκαθαρίσουμε την ουρά εκτύπωσης για τυχόν εργασίες που ανήκουν σε λογαριασμό χρήστη eric
. Η lprm
εντολή καταργεί εργασίες από την ουρά εκτύπωσης. Η -U
επιλογή (όνομα χρήστη) σάς επιτρέπει να καταργήσετε εργασίες που ανήκουν στον λογαριασμό χρήστη με όνομα:
lprm -U eric
Οι εργασίες καταργούνται και επιστρέφετε στη γραμμή εντολών.
Διαγραφή του λογαριασμού χρήστη
Έχουμε ήδη δημιουργήσει αντίγραφα ασφαλείας των αρχείων από τον /home/eric/
κατάλογο, ώστε να προχωρήσουμε και να διαγράψουμε τον λογαριασμό χρήστη και να διαγράψουμε τον /home/eric/
κατάλογο ταυτόχρονα.
Η εντολή για χρήση εξαρτάται από τη διανομή του Linux που χρησιμοποιείτε. Για διανομές Linux που βασίζονται στο Debian, η εντολή είναι deluser
, και για τον υπόλοιπο κόσμο του Linux, είναι userdel
.
Στην πραγματικότητα, στο Ubuntu και οι δύο εντολές είναι διαθέσιμες. Περίμενα από το ένα να είναι ένα ψευδώνυμο του άλλου, αλλά είναι ξεχωριστά δυαδικά.
τύπου deluser
πληκτρολογήστε userdel
Αν και είναι και οι δύο διαθέσιμοι, η πρόταση είναι να χρησιμοποιείται deluser
σε διανομές που προέρχονται από το Debian:
" userdel
Είναι ένα βοηθητικό πρόγραμμα χαμηλού επιπέδου για την αφαίρεση χρηστών. Στο Debian, οι διαχειριστές πρέπει συνήθως να χρησιμοποιούν deluser
(8) αντ 'αυτού. "
Αυτό είναι αρκετά σαφές, οπότε η εντολή που πρέπει να χρησιμοποιήσετε σε αυτόν τον υπολογιστή Ubuntu είναι deluser
. Επειδή θέλουμε επίσης να καταργηθεί ο αρχικός κατάλογός τους, χρησιμοποιούμε τη --remove-home
σημαία:
sudo deluser - remove-home eric
Η εντολή που πρέπει να χρησιμοποιείται για διανομές εκτός Debian είναι userdel
, με τη --remove
σημαία:
sudo userdel - αφαιρέστε το eric
Όλα τα ίχνη λογαριασμού χρήστη eric
έχουν διαγραφεί. Μπορούμε να ελέγξουμε ότι ο /home/eric/
κατάλογος έχει αφαιρεθεί:
ls / σπίτι
Η eric
ομάδα καταργήθηκε επίσης επειδή ο λογαριασμός χρήστη eric
ήταν η μόνη καταχώριση σε αυτήν. Μπορούμε να το ελέγξουμε αρκετά εύκολα, διοχετεύοντας το περιεχόμενο /etc/group
μέσω grep
:
sudo λιγότερο / etc / group | grep eric
Είναι ένα περιτύλιγμα
Ο Έρικ, για τις αμαρτίες του, έχει φύγει. Η ασφάλεια τον περπατά ακόμα έξω από το κτίριο και έχετε ήδη ασφαλίσει και αρχειοθετήσει τα αρχεία του, διαγράψατε τον λογαριασμό του και εκκαθαρίσατε το σύστημα τυχόν υπολειμμάτων.
Η ακρίβεια αυξάνει πάντα την ταχύτητα. Βεβαιωθείτε ότι έχετε λάβει υπόψη σας κάθε βήμα προτού το κάνετε. Δεν θέλετε κάποιος να περπατάει στο γραφείο σας και να λέει «Όχι, ο άλλος Έρικ».