Το Στέκι των Πληροφορικών

Γενικά => Τεχνική υποστήριξη => Linux => Μήνυμα ξεκίνησε από: gidarakos στις 25 Σεπ 2009, 01:18:31 ΜΜ

Τίτλος: Διαγραφή αρχείων χρήστη
Αποστολή από: gidarakos στις 25 Σεπ 2009, 01:18:31 ΜΜ
Αφού διαγράψουμε έναν χρήστη από το "χρήστες και ομάδες" τα αρχεία του παραμένουν.
Ερώτηση 1η: Αν δοκιμάσουμε να τον ξαναδημιουργήσουμε με το ίδιο username δεν μπορούμε γιατί υπάρχει ήδη! Πως μπορούμε να τον επαναφέρουμε τον λογαριασμό; Δηλαδή να επαναφέρουμε το username που διαγράψαμε και όλα να λειτουργούν όπως πριν τη διαγραφή;
Μια 2η ερώτηση: Πως μπορούμε να διαγράψουμε τα πάντα που αφορούν έναν χρήστη όπως π.χ. το φάκελο του κάτω από το home φάκελο. Το είχα προσπάθησει με sudo rm (με κάποιες παραμέτρους διαγραφής φακέλων) αλλά κάπου μου έβγαζε πρόβλημα με δικαιώματα..

Ευχαριστώ για το χρόνο σας!

Κώστας Γιδαράκος
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: alkisg στις 25 Σεπ 2009, 02:25:15 ΜΜ
Case study:
Πηγαίνουμε στο "Χρήστες και ομάδες" και φτιάχνουμε ένα χρήστη με όνομα username.
Αυτόματα δημιουργείται μια ομάδα πάλι με όνομα username, καθώς και ο προσωπικός του φάκελος στο /home/username.
Το όνομα χρήστη καθώς και το όνομα group αντιπροσωπεύονται από κάποια νούμερα που λέγονται UID (User ID) και GID (Group ID).
Σύνοψη:
Όνομα χρήστη: username
UID: 1001
Όνομα ομάδας: username
GID: 1001
Προσωπικός φάκελος: /home/username

Πάμε να σβήσουμε τον χρήστη. Ο προσωπικός του φάκελος όπως είπες δεν σβήνεται αυτόματα, αφού μπορεί να έχει χρήσιμα αρχεία εκεί μέσα. Μάλιστα, δεν σβήνεται καν η ομάδα του, επειδή μπορεί κάποιος administrator να έβαλε κι άλλον χρήστη στην ίδια ομάδα (μην το κάνετε, προτείνεται κάθε χρήστης να έχει σαν πρωτεύουσα ομάδα πάλι το username του).
Την ομάδα μπορούμε να τη σβήσουμε επιλέγοντας "Διαχείριση ομάδων".

Για τη διαγραφή του προσωπικού φακέλου, η εντολή είναι:
Κώδικας [Επιλογή]

sudo rm -rf /home/username

Προσοχή - προσοχή: μην το συνηθίζετε. Αν έχετε προηγουμένως εκτελέσει άλλη sudo, δεν θα σας ζητήσει κωδικό. Και αν ενώ έχετε γράψει το μισό (sudo rm -rf /) και πριν γράψετε το home ένα παιδί σας κουνήσει λίγο με τον αγκώνα και πατήσετε το Enter, ε, τη βάψατε, σβήστηκε όλος ο σκληρός! :)

Ανάποδα λοιπόν από ότι συνηθίζεται στην κοινότητα, προτιμώ να πατάω Alt+F2, να γράφω
Κώδικας [Επιλογή]

gksu nautilus

ώστε να ξεκινήσει η "εξερεύνηση" με δικαιώματα root, και να κάνω με γραφικό τρόπο τη διαγραφή επιλέγοντας το φάκελο και πατώντας Shift+Delete. Εννοείται φυσικά ότι και ο nautilus με δικαιώματα root θέλει τεράστια προσοχή και πρέπει να χρησιμοποιείται μόνο σε τέτοιες περιπτώσεις, όχι γενικά...


Η επαναφορά τώρα ενός λογαριασμού που έχει διαγραφεί είναι λίγο πιο κολπατζίδικη, επειδή θα πρέπει να ελέγξουμε ότι ο νέος λογαριασμός που θα δημιουργηθεί θα έχει το ίδιο UID και GID με τον διαγραμμένο λογαριασμό.
Κι εδώ υπάρχει τρόπος να γίνει με γραφικό τρόπο· είτε με την εισαγωγή/εξαγωγή χρηστών των sch-scripts, ορίζοντας το UID και το GID που θέλουμε, είτε μετονομάζοντας προσωρινά τον προσωπικό κατάλογο πριν ξαναδημιουργήσουμε το username από το "Χρήστες και ομάδες".

Το παρακάτω όμως είναι πολύ πολύ πιο σύντομο, οπότε ας καταφύγουμε σε κονσόλα:
Κώδικας [Επιλογή]

ls -nd /home/username         # Με αυτό βλέπουμε το παλιό UID και GID, ας πούμε ότι είναι 1001
sudo adduser --uid 1001 --gid 1001 --add_extra_groups username
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: gidarakos στις 14 Μαρ 2011, 01:33:49 ΜΜ
Αν δημιουργήσουμε κατά λάθος μέσω sch-scripts πολλούς χρήστες ποιος είναι ο πιο σύντομος τρόπος να τους διαγράψουμε;
Για έναν, διαγραφή από το μενού Χρήστες και Ομάδες και μετά διαγραφή του φακέλου με τον nautilus..
Για πολλούς;

Υ.Γ. Δεν ξέρω αν είναι σωστό που κάνω εδώ την ερώτηση γιατί το αρχικό θέμα είναι αρκετά παλιό..
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: alkisg στις 14 Μαρ 2011, 02:03:20 ΜΜ
https://alkisg.mysch.gr/steki/index.php?topic=3005.msg32742#msg32742
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: gidarakos στις 14 Μαρ 2011, 03:16:02 ΜΜ
Άλκη sorry, αλλά πριν ρωτήσω με λίγο ψάξιμο που έκανα δεν είχα δει αυτή την απάντηση..
Κώδικας [Επιλογή]
for u in a1-01 a1-02 a1-03; do sudo deluser --remove-home $u; done
το δοκίμασα αλλά σβήνει μόνο τους χρήστες-φακέλους των a1-01 a1-02 a1-03;
Αν έχουμε κι άλλους - με μία λογική ακολουθίας - πρέπει να τους βάλουμε έναν-έναν στην εντολή;
Δεν θα έχει πολύ γράψιμο αυτό για πολλούς χρήστες;
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: apapakL στις 14 Μαρ 2011, 03:46:07 ΜΜ
Αν το έκανες έτσι

Κώδικας [Επιλογή]
for (( i=101; $i<=112; i++ )); do sudo deluser --remove-home a1-${i:1}; done

για κάθε τμήμα αν υποθέσουμε ότι έχεις 12 χρήστες/τμήμα?
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: alkisg στις 14 Μαρ 2011, 04:20:19 ΜΜ
Παράθεση από: gidarakos στις 14 Μαρ 2011, 03:16:02 ΜΜ
Δεν θα έχει πολύ γράψιμο αυτό για πολλούς χρήστες;

Τη λίστα των χρηστών μπορείς να την πάρεις με πολλούς τρόπους, π.χ. με
Κώδικας [Επιλογή]

cd /home
echo *

Και στη συνέχεια να την κάνεις copy/paste στην εντολή - αν θες χρησιμοποίησε το gedit σαν ενδιάμεσο ενόσω την κατασκευάζεις.
Μεγάλη προσοχή όμως να εξαιρέσεις τους λογαριασμούς που δεν πρέπει να σβηστούν, π.χ. teacher κτλ.

Επίτηδες δεν μπαίνω σε δημιουργία των ονομάτων με μεταβλητές (π.χ. a$i) για λόγους απλότητας, γιατί η --remove-home διαγράφει και τους φακέλους των χρηστών, οπότε αν ξεφύγει κάτι...  :'(
Πιο ασφαλές μου φαίνεται να δει κάποιος όλους τους χρήστες εντός της εντολής πριν πατήσει το enter. :)
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: gidarakos στις 14 Μαρ 2011, 08:18:23 ΜΜ
Σας ευχαριστώ και τους δύο για το χρόνο σας..

Παράθεση από: apapakl στις 14 Μαρ 2011, 03:46:07 ΜΜ
Αν το έκανες έτσι

Κώδικας [Επιλογή]
for (( i=101; $i<=112; i++ )); do sudo deluser --remove-home a1-${i:1}; done

για κάθε τμήμα αν υποθέσουμε ότι έχεις 12 χρήστες/τμήμα?
Επειδή δεν έχω ιδιαίτερη εμπειρία, το $ στο $i<=112 τι ρόλο παίζει;
Παρατήρησα ότι χωρίς το $ έχω το ίδιο αποτέλεσμα..
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: apapakL στις 14 Μαρ 2011, 11:44:12 ΜΜ
Ναι δε χρειάζεται...
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: gidarakos στις 18 Μαρ 2011, 09:23:14 ΜΜ
Δημιούργησα και επισυνάπτω ένα απλό script το οποίο με διευκολύνει να διαγράψω ομαδικά χρήστες.
Ουσιαστικά περιλαμβάνει τις οδηγίες του Άλκη και του apapaki.
Πριν το τρέξουμε θα πρέπει να του κάνουμε μια απλή επεξεργασία αφού πρώτα διαβάσουμε τα σχόλια.

Υ.Γ. Κάθε τροποποίηση ή παρατήρηση ευπρόσδεκτη!
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: alkisg στις 18 Μαρ 2011, 10:03:30 ΜΜ
Αφού κάνεις που κάνεις επαναλήψεις, μια ακόμα εναλλακτική:
Κώδικας [Επιλογή]

for c in a1 a2 b1 b2 c1 c2; do
    for i in 01 02 03 04 05 06 07 08 09 10 11 12; do
        echo sudo deluser --remove-home user${i}${c};
    done;
done


Αφού βεβαιωθούμε ότι κάνει αυτά που θέλουμε, αφαιρούμε τη λέξη "echo".
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: yiannis στις 02 Οκτ 2012, 12:17:52 ΜΜ
Είπα να μην ανοίξω καινούριο νήμα, μιας και είναι το πιο σχετικό με την απορία μου...

Θέλω στην αρχή κάθε χρονιάς να χρησιμοποιώ τους ίδιους χρήστες, αλλά να σβήνω όλα τα αρχεία τους, ρυθμίσεις κλπ. Δοκίμασα να σβήσω λοιπόν όλους τους σχετικούς φακέλους στο /home (alt+F2 nautilus κλπ), αλλά μετά έπαιρνα ένα μήνυμα λάθους όταν πήγαινα να μπω σαν χρήστης στα clients (όλα fat). Κατέληξα να σβήσω όλους τους χρήστες, έναν-έναν από το "χρήστες και ομάδες" και να τους ξαναδημιουργήσω από το sch-scripts! Περίεργη λύση, αλλά δούλεψε. Δεν υπάρχει κάποιος πιο απλός τρόπος για να σβήσω μόνο τα αρχεία αλλά οι χρήστες/κωδικοί να ισχύουν κανονικά;

Τέλος, παρατήρησα ότι ακόμα και από το "Χρήστες και Ομάδες" έχω πάλι την επιλογή του να σβήνω το φάκελο κατά τη διαγραφή ενός χρήστη. Έτσι δεν χρειαζόταν να το κάνω χειροκίνητα :)

Ευχαριστώ!
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: alkisg στις 02 Οκτ 2012, 12:56:06 ΜΜ
Γενικά, για να σβήσουμε τα περιεχόμενα ενός φακέλου αλλά όχι τον ίδιο τον φάκελο, κάνουμε cd μέσα στο φάκελο, και εκτελούμε find . -delete
Για να κάνουμε login ως κάποιος χρήστης και να σβήσουμε το φάκελό του, sudo -i -u username find . -delete
Και για πολλούς χρήστες:

Κώδικας (shell) [Επιλογή]

for user in user1 user2 user3; do
    sudo -i -u $user find . -delete
done


...και για να κάνεις copy/paste τη λίστα των χρηστών που θες να σβήσεις, ls /home
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: yiannis στις 02 Οκτ 2012, 11:44:28 ΜΜ
Ευχαριστώ Άλκη,
τα σημείωσα για όταν τα ξαναχρειαστώ!! :)

Αν κατάλαβα καλά, έκανα το εξής λάθος: Ήθελα να κρατήσω τους ίδιους χρήστες και να σβήσω αρχεία & ρυθμίσεις για τους χρήστες user1, ..., user12. Έσβησα κατευθείαν τους φακέλους user1, ..., user12 μέσα στο /home. Έτσι, όταν κάποιος από αυτούς τους χρήστες προσπαθούσε να μπει, δεν υπήρχε ο φάκελός του και έβγαζε σφάλμα. Πιθανώς δεν έχει η συγκεκριμένη διαδικασία τα permissions για να δημιουργήσει τον κατάλληλο φάκελο μέσα στο /home. Αν έμπαινα μέσα στους φακέλους user1, ..., user12 και όπως λες και συ έσβηνα τα περιεχόμενά τους, όλα θα δούλευαν κανονικά. Κατάλαβα καλά;;; :)
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: alkisg στις 03 Οκτ 2012, 12:27:34 ΠΜ
Yup. Επίσης θα μπορούσες αντί να σβήσεις + ξαναδημιουργήσεις τους χρήστες, απλά να δημιουργήσεις τα home directory τους, με τους κατάλληλους owners, π.χ.
sudo mkdir /home/username
sudo chown username:username /home/username
Τίτλος: Απ: Διαγραφή αρχείων χρήστη
Αποστολή από: yiannis στις 04 Οκτ 2012, 05:57:02 ΜΜ
Το σκέφτηκα, αλλά δεν ήξερα τι ακριβώς permissions να βάλω. Αυτό που δεν σκέφτηκα ήταν να έβλεπα τι είχε ένα έτοιμο directory!
Σ' ευχαριστώ για τη βοήθεια και αυτή τη φορά!
Να 'σαι καλά!