Στον μικρό αυτό οδηγό θα δούμε πως μια μοντέρνα διανομή φτιάχνει τους χρήστες και τις ομάδες που θέλουν οι υπηρεσίες για να λειτουργήσουν. Σε μια πρώτη ματιά αυτό δεν είναι κάτι το δύσκολο. Απλά κατά την εγκατάσταση κάποιας υπηρεσίας θα τρέξει κάποιο script που θα φτιάξει ότι χρειάζεται. Πού είναι το πρόβλημα;
Ναι, η μέθοδος αυτή λειτουργεί, αλλά έχει κάποια θέματα. Κατ αρχήν δεν υπάρχει κάπου στο σύστημα αυτή η πληροφορία σε κάποιο αρχείο που να μπορεί να αλλάξει. Κάτι που δυσκολεύει να πάρεις το /usr
μιας εγκατάστασης και να το κάνεις image. Επίσης, δεν είναι τόσο κομψό.
Ο καινούργιος γυαλιστερός τρόπος είναι να χρησιμοποιήσουμε το systemd-sysusers
. Από το man page systemd-sysusers(8)
systemd-sysusers creates system users and groups, based on the
file format and location specified in sysusers.d(5).
Δηλαδή κάνει μια πολύ απλή δουλεία. Διαβάζει κάποια αρχεία και φτιάχνει χρήστες και ομάδες. Αν πάμε στο sysusers.d(5) θα βρούμε τις θέσεις που υπάρχουν τα αρχεία αυτά. Θα τα βρούμε στη θέση /usr/lib/sysusers.d
. Αν θέλουμε να τα πειράξουμε θα κάνουμε ότι κάνουμε με μια υπηρεσία του systemd
. Θα βάλουμε τις αλλαγές μας στη θέση /etc/sysusers.d/
Στόχος μια μοντέρνας διανομής είναι το σύστημα να λειτουργεί χωρίς να κάνουμε καθόλου αλλαγές στο
/usr
. Εκεί θα πρέπει να είναι και όλλες οι ρυθμίσεις. Στο/etc
θα υπάρχουν μόνο όσες ρυθμίσεις σαν χρήστες αλλάξαμε.
Ένα παράδειγμα
Στο παρακάτω αποθετήριο υπάρχουν κάποιοι κανόνες για το udev
χρήσιμοι για κινητά τηλέφωνα και το adb
Ο κανόνας του udev
επιτρέπει τη χρήση του adb
σε όσους είναι στην ομάδα adbusers
. Αλλά η ομάδα αυτή δεν υπάρχει. Από τις οδηγίες εγκατάστασης:
# Add the adbusers group if it's doesn't already exist
sudo cp android-udev.conf /usr/lib/sysusers.d/
sudo systemd-sysusers
# Add your user to the adbusers group
sudo gpasswd -a $(whoami) adbusers
Βάζουμε ένα αρχείο που περιγράφει την ομάδα στη γνωστή θέση και τρέχουμε την εντολή systemd-sysusers
. Την άλλη φορά που θα δούμε αντίστοιχες εντολές θα ξέρουμε λοιπόν τι κάνουν .
Το systemd-sysusers
στο σύστημα μου
Ας δούμε τα αρχεία που υπάρχουν στο σύστημα μου
❯ cd /usr/lib/sysusers.d/ /usr/lib/sysusers.d🔒 ❯ ls android-udev.conf dbus.conf systemd-journal.conf systemd-resolve.conf xpra.conf basic.conf flatpak.conf systemd-network.conf systemd-timesync.conf
Μπορώ να δω τι έχουν τα αρχεία ή με κάποιο γνωστό τρόπο ή με την εντολή
systemd-sysusers --cat-config
Δοκιμάστε το στον υπολογιστή σας. Θα δούμε μια περιγραφή των χρηστών και των ομάδων που διαχειρίζεται το systemd-sysusers
. Υπάρχει και μια υπηρεσία συστήματος που θα το τρέξει κατά την εκκίνησή
systemctl status systemd-sysusers.service
Ερωτήσεις και απαντήσεις
Είναι ασφαλές;
Το systemd-sysusers
δε θα κάνει τίποτα αν οι χρήστες ή οι ομάδες υπάρχουν στο σύστημα, ή αν οι χρήστες είναι ήδη μέλη των ομάδων. Στην πράξη δεν υπάρχει λόγος να πειράξουμε τις ρυθμίσεις έκτος αν θέλουμε να αποτρέψουμε τη δημιουργία αυτών των χρηστών ή των ομάδων.
Δείτε ακόμα
- Users, Groups, UIDs and GIDs on systemd Systems
Users, Groups, UIDs and GIDs on systemd Systems - User/Group Name Syntax
User/Group Name Syntax - Διαχείριση προσωρινών αρχείων σε μια μοντέρνα διανομή