Πώς να διαγράψετε έναν χρήστη σε 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

Είναι ένα περιτύλιγμα

Ο Έρικ, για τις αμαρτίες του, έχει φύγει. Η ασφάλεια τον περπατά ακόμα έξω από το κτίριο και έχετε ήδη ασφαλίσει και αρχειοθετήσει τα αρχεία του, διαγράψατε τον λογαριασμό του και εκκαθαρίσατε το σύστημα τυχόν υπολειμμάτων.

Η ακρίβεια αυξάνει πάντα την ταχύτητα. Βεβαιωθείτε ότι έχετε λάβει υπόψη σας κάθε βήμα προτού το κάνετε. Δεν θέλετε κάποιος να περπατάει στο γραφείο σας και να λέει «Όχι, ο άλλος Έρικ».