Systemd-Homed: Μετά το Systemd ήρθε να μας πάρει και τον Home φάκελο

Ο φάκελος /home στα λειτουργικά συστήματα Linux/Unix περιλαμβάνει τον φάκελο με όλα τα αρχεία και τις ρυθμίσεις του χρήστη. Μια νέα πρόταση από τον Lennart Poettering, δημιουργό του Systemd και PulseAudio κ.α. για την δημιουργία, διαχείριση, κρυπτογράφηση, ασφάλεια και μεταφερσιμότητα του Home φακέλου των χρηστών, θα προκαλέσει πάλι έντονες συζητήσεις.

Προτείνω να αφιερώσετε μισή ώρα και να δείτε και το βίντεο στις παραπομπές για να έχετε μια πλήρη εικόνα για τα προβλήματα που θέλει να λύσει το νέο σύστημα πριν ξεκινήσει η μάχη στα σχόλια :slight_smile:

2 Likes

Βασικά πριν δω το σύστημα λίγη ιστορία από την προηγούμενη χιλιετία.

Σε κάποιο εργαστήριο είχαμε κάποια workstations με Unix. Ο κατάλογος του χρήστη ήταν σε ένα server συνδεμένο με NFS και καθόσουν σε κάθε μηχάνημα και απλά έδινες τον κωδικό σου και συνδεόσουν και δεν σε ένοιαζε που ήταν.

Υπήρχαν και τα Windows (ξεχνάω εκδόσεις κλπ) αλλά ήθελες να κάνεις τα ίδια. Υπήρχε κάποιος μπελαλίδικος τρόπος να κάνεις το ίδιο και μου είχε ανατεθεί να το εφαρμόσω (και απέτυχα να δουλέψει σωστά). Μιας και τα Windows δεν είχαν τότε την έννοια του κατάλογου του χρήστη και ήταν τότε προσανατολισμένα για ένα χρήστη έρχονταν από τον NT server τα αρχεία και το user registry στο μηχάνημα που ήθελες να δουλέψεις.

Βλέπω την ιστορία να επαναλαμβάνετε και τρομάζω :stuck_out_tongue:

1 Like

Πιστεύω θα είναι το μέλλον. Χαζά τερματικά με απομακρυσμένα λειτουργικά και βιβλιοθήκες, κι αν όχι ακριβώς έτσι σίγουρα θα είναι παρόμοιας λογικής.
Ήδη παρουσιάστηκε για gaming (βλ. Google Stadia & Project xCloud).

1 Like

Πάμε σε μια σοβαρή κριτική της παρουσίασης τώρα που την είδα. Το να λες μισές πληροφορίες είναι σαν να λες ψέματα. Κάτι που ισχύει για όλα τα προβλήματα που παρουσιάζει από το πρώτο slide. Ας ξεκινήσουμε από τον τίτλο. Δεν αφορά τον φάκελο του χρήστη, αυτό είναι εύκολο, αφορά την διαχείριση της ταυτότητας του.

Ας ξεκινήσω ενδεικτικά από το Bullet 1: Για να προσθέσεις ένα χρήστη πρέπει ο κατάλογος /etc να είναι εγγράψιμος. Αυτό είναι ένα χοντρό ψέμα. Αρκεί να πειράξεις το αρχείο /etc/nsswitch.conf και οι πληροφορίες μπορούν να είναι όπου θέλεις. Σε κάποιο directory server σε κάποια κλασσική βάση δεδομένων, κυριολεκτικά οπουδήποτε. Ψέμα 2: Οι πληροφορίες για ένα χρήστη είναι περιορισμένες. Αν έχεις μια τέτοια ανάγκη πχ να προσθέσεις το τηλέφωνο κάποιου χρήστη, θα χρησιμοποιήσεις κάποιο directory service όπως αυτό της Redhat ή κάποιο LDAP. Και μπορείς να προσθέσεις οτι πληροφορία θέλεις. Καλά στην Redhat δουλεύει, δεν το ξέρει αυτό; Ψέμα 3 για να συνδεθείς χρησιμοποιείς μόνο το password που είναι μηχανισμός από την δεκαετία του 70 και όχι κάτι σαν ένα yubikey. Καλέ κάτι που το λένε pam και υπάρχει σε κάθε διανομή δεν το ξέρεις; Είχα γράψει παλιά ένα χαμένο τώρα οδηγό που χρησιμοποιούσες ένα απλό στικακι USB (αρκεί να είχε model ή serial number που να το ξεχωρίζει απο άλλα) και ήσουν συνδεμένος μόνο όταν αυτό το στικάκι ήταν συνδεμένο. Το έβγαζες και έκανε logout. Είναι δυνατόν να μην το ξέρει;

Υπάρχουν δυο θετικά πράγματα που υπάρχουν στην ομιλία. Το πρώτο είναι το πρόβλημα του susspend σε κρυπτογραφημένο δίσκο. Εκεί η υπάρχουσα υλοποίηση έχει τα θεματάκια της, ο ομιλητής παραδέχετε πως δεν τα έχει λύσει όλα, αλλά η κρυπτογράφηση του κατάλογου χρήστη είναι η κρυπτογράφηση του κατάλογου του χρήστη. Δεν είναι το ποιος είναι. Δεν είναι τι μπορεί να κάνει, δεν είναι που ειναι αποθηκευμένη. Είναι ένα ανεξάρτητο πρόβλημα που μπορεί να λυθεί ανεξάρτητα.

Το δεύτερο είναι η υπόσχεση πως δεν θα έχεις κάποια εταιρεία ή πανεπιστήμιο να κάνει διαχείριση του ποιος είσαι. Μα μια εταιρεία θέλει να ξέρει ποιος μπορεί και ποιος δεν μπορεί να χρησιμοποιεί κάποια θέση εργασίας της. Δεν μπορώ να δώ το όφελος.

Αλλά ναι υπάρχει ένα. Το home on a stick. Βάζω ένα στικάκι σε οποιοδήποτε υπολογιστή και είναι σαν να δουλεύω στον δικό μου. Ωραία ιδέα, αλλά όχι στον δικό μου υπολογιστή φιλαράκο. Στον δικό αν θέλεις να μπεις, θα μπεις σαν χρήστης guest. Μετά κάνε ότι θες, βάλε το στικάκι σου άλλαξε την μεταβλητή $HOME και παίξε.

Αλλά λες πως θα προστεθείς στο σύστημα με κάποιο random ID. Σοβαρά; Και αν κάποιος πριν είχε συνδεθεί και είχε πάρει τον ίδιο; Είναι σοβαρά πράγματα αυτά;

Και μετά υπάρχει αυτό το αρχείο που περιγράφει τον χρήστη. Και περιέχει όλες τις πληροφορίες. Ακόμα και τα group που ανήκει. Και μπορεί να του δώσει και δυνατότητες για sudo. Στο μηχάνημα μου ρε μεγάλε; Το κουβαδάκι σου και σε άλλη παραλία :smiley:

Αλλά όχι, για να το δεχτεί το σύστημα θα πρέπει να έχει υπογραφτεί με κάποιο έγκυρο κλειδί. ΟΚ εντάξει τότε το σώσαμε. Αλλά μια στιγμή. Πως ξέρει το σύστημα ότι αυτή η υπογραφή είναι έγκυρη; Κάποιος θα πρέπει να το υπογράψει, άρα να ή κεντρική αρχή πιστοποίησης που θεωρητικά διώξαμε, τελικά κοίτα να δεις που χρειάζετε :smiley: Και ο υπολογιστής μου πρέπει να ξέρει για αυτήν. Όπα κοίτα να δεις που πρέπει να γράψεις κάποια πληροφορία στο /etc/ που; Μα εκεί που δεν γράφουμε :smiley:

Άρα ο υπολογιστής μου θα δεχτεί το στικάκι σου αν είμαστε στην ίδια εταιρεία και μόνο. Και δεν θα δουλέψει στον οποιοδήποτε υπολογιστή. Τελικά καλύτερος ο λογαριασμός guest :stuck_out_tongue:

Και τα πράγματα είναι πολύ χειρότερα. Θέλω να αλλάξω τον κωδικό μου, η την φωτογραφία μου ή κάποιο στοιχείο. Δεν μπορώ, γιατί θα αλλάξει το αρχείο και θα αχρηστευτεί η ηλεκτρονική του υπογραφή. Θα πρέπει να πάω στην κεντρική διαχείριση να μου το εγκρίνει :astonished: Αυτό το λέμε κατανεμημένο μη ιεραρχικό σύστημα λολ

Αυτά στα γρήγορα και αν κάπου κατάλαβα λάθος, θα επανεξετάσω. Αλλά μέχρι τότε: Άσε κάτω τον φάκελο /home μου βρε αλήτη :exploding_head::exclamation: Και φέρε πίσω τον χρόνο που σπατάλησα να δω το βίντεο :innocent:

Τέλος το πρόβλημα του home-on-the-stick μπορεί να λυθεί πολύ πολύ ποιο απλά. Μπορείς να φτιάξεις ένα xsession που να τρέχει από κάποιο διαχειριστή παραθύρων, να αποκρυπτογραφεί τον φάκελο από κάποιο στικάκι, να τα κάνει τα αρχεία εγγράψιμα από τον χρήστη guest του συστήματος, και στην αποσύνδεση να επαναφέρει το σωστό uid. Δεν είναι ανάγκη για κάτι τόσο φανταχτερό, λίγες γραμμές ακόμα και σε bash αρκούν πιστεύω. Και δεν θα έχω και κανένα πρόβλημα να το χρησιμοποιήσεις με τον υπολογιστή μου :innocent:

1 Like

Μηπως (λεω μηπως) αντι να μας λεει ο Lennard τι προτεινει θα πρεπει να τον βομβαρδισουμε λιγο με τα δικα μας πραγματα για το systemd για να τον κρατησουμε απλα σε εκγρηγωρση; Οχι τιποτα αλλο για να ξεχασει το Home directory που ειναι στην ουσια δικο μας οχι δικο του. Λεω τωρα.

1 Like

Δεν έχω δει ακόμα το βίντεο, αλλά η άποψή μου γενικά είναι:

  • Μια χαρά ιδέα η δημιουργία lennard χρηστών
  • Άσε κάτω τούς unix χρήστες

Να ναι καλα το παλικαρι αλλα δεν νομιζω αυτη η ιδεα του να εχει οση απυχηση ειχε το SystemD. Και παλι να ναι καλα το παλικαρι αλλα προσωπικα δεν θα παρω. Και ελπιζω να μην εχουν πειραγμενα μυαλα στο Debian γιατι μαλλον θα μεταπηδησω στο Devuan αν γινει καμια στραβη.

Κατά την ταπεινή μου γνώμη, είναι λίγο νωρίς να διαφωνούμε με κάτι που δεν έχει βγει ακόμα.
Φυσικά, καταλαβαίνω ότι ισχύει το "όποιος καεί από χυλό (?systemd?) φυσάει και το γιαούρτι (?homed?).

Προσωπικά όπως το systemd έτσι, αν το homed δεν μπλέκεται στα πόδια μου (συμβατότητα προς τα πίσω), αλλά προσφέρει π.χ. one universal login/encryption και containerized /home/user ενώ ταυτόχρονα θα μπορώ να το μετακινώ σε οποιαδήποτε διανομή θέλω έστω με USB (χωρίς να χρειάζεται να ρυθμίσω απο πριν χρήστη, samba, PAM, LVM, κλ.π)… τότε είναι ευπρόσδεκτη τεχνολογία ελεύθερου λογισμικού, όπως και κάθε άλλη τεχνολογία Ε.Λ.

Με βάση αυτά που είδα στο βίντεο και κατάλαβα (με τα λίγα που ξέρω για τέτοια ζητήματα), αν υλοποιηθεί τότε ήδη έχω στο μυαλό μου ωραίες λύσεις που θα μου γλυτώσουν χρόνο και κόπο προσωπικό αλλά και θα με απαλλάξουν από Microsoft Active Directory και LDAP.

2 Likes

Κατι τετοιο θα ηταν ισως πιο χρησιμο αν υπηρχε περιπτωση να μεταφερεις ΟΛΟ το Desktop σου στο συστημα στο οποιο καθεσαι κατω και συνδεεις το στικακι σου με το Home folder. ΠΧ εχεις εναν πωλητη που παει απο Αθηνα στη Θεσαλλονικη και δεν θελει να μεταφερει λαπτοπ μαζι του… και εχει ολο το desktop που δουλευει στην δουλεια στο στικακι του και μπορει πχ να το τρεξει ΟΠΟΥΔΗΠΩΤΕ… τοτε ναι… ενταξει… Αλλα… μονο για το home… δεν ξερω κατα ποσο θα δουλεψει με διαφορετικες διανομες και διαφορετικες εκδοσεις προγραμματων (πχ VLC 2.0 στον εναν υπολογιστη και VLC 3 στον αλλον. Καπου τα settings δεν θα ειναι τα ιδια).

τι εγινε λεει;
παλι μεσανυχτα εχω ε;

αυτο σκεφτομουν και εγω, φτιαχνεις ενα live usb με persistence, αμα θες το κλωνοποιεις κιολας, και κανεις τη δουλεια σου. Μπορει να επιλεξεις και άλλο τροπο κιολας, πολυ φασαρια για το τιποτα μου φαινεται…