Device owner

George Notaras gnot at g-loaded.eu
Sat Jan 12 23:14:10 EET 2008


On Fri, 2008-01-11 at 17:26 +0200, Alexandros Kosiaris wrote:
> Giorgos Keramidas wrote:
> > On 2008-01-11 16:28, Antonis Christofides <anthony at itia.ntua.gr> wrote:
> >> Όταν μπουτάρει το μηχάνημα (Debian stable) θέλω το /dev/ttyS0 να
> >> ανήκει σε άλλο χρήστη απ??? ό,τι στο root. Ποιος είναι ο σωστός(ΤΜ)
> >> τρόπος να το κάνω?? Νομίζω πως το σύστημά μου δουλεύει με udev (ό,τι
> >> είναι default στο Debian stable πάντως).
> > 
> > Μπορείς να ρυθμίσεις τα permissions και τον owner του ttyS0 μέσα στο
> > αρχείο `/etc/udev/rules.d/020_permissions.rules'.
> > 
> > Εκεί που λέει:
> > 
> >     # serial devices
> >     SUBSYSTEM=="tty",                             GROUP="dialout"
> > 
> > Εσύ θέλεις κάτι σαν:
> > 
> >     # serial devices
> >     SUBSYSTEM=="tty", MODE="0640", OWNER="keramida", GROUP="dialout"
> > 
> > 
> 
> Πολύ σωστά. Το μόνο που έχω να προτείνω είναι:
> 
> Για να μην στα κάνει μαντάρα κάποιο επόμενο upgrade που θα αλλάξει το
> /etc/udev/permissions.rules (στο οποίο είναι softlink το
> /etc/udev/rules.d/020_permissions.rules)
> Φτιάξε ένα δικό σου αρχείο που αλφαβητικά να είναι όσο το δυνατόν πιο
> χαμηλά (ίσως και ακόμη μετά το z99_hal.rules) π.χ.
> 
> z99_zemyrules.rules
> 
> Και βάλε τα rules σου. Ετσι σιγουρεύεις
> 1) οτι τα rules που περιέχουν ή θα περιέχουν αύριο πιθανώς επόμενα στην
> λίστα αρχεία όπως το udev.rules δεν θα στα κάνουν χαλάστρα(been
> there,done that) αφού κατά πάσα πιθανότητα το αρχείο σου θα είναι πάντα
> τελευταίο.
> 2) Οτι δεν θα σου αλλάξει τα πάντα κάποιο upgrade και θα πρέπει μετά να
> κάθεσαι να κάνεις diffs για να δεις ποιες είναι οι αλλαγές σου.

Πρόσφατα χρειάστηκε να κάνω ακριβώς το ίδιο, αλλά στην περίπτωση των tty
το rule στο τέλος της αλφαβητικής σειράς δεν φαίνεται να δουλεύει. Για
κάποιον λόγο, τον οποίο δεν έψαξα, στο fedora μπορεί να αλλάξει μόνο το
MODE. Τα USER/GROUP δεν παίρνουν τη σωστή τιμή. Οπότε χρειάζεται η
εντελώς αντίθετη προσέγγιση, δηλαδή το rule να είναι όσο πιο ψηλά
γίνεται και να χρησιμοποιηθεί το operator ':=' αντί του απλού '=', ώστε
να μην ξανααλλάξει η τιμή των OWNER/GROUP/MODE από κάποιο επόμενο rule.
Για παράδειγμα, σε ένα αρχείο:

10-my-custom.rules

βάζουμε το rule:

KERNEL=="ttyS0", SUBSYSTEM=="tty", NAME="%k", OWNER:="MYUSER",
GROUP:="MYGROUP", MODE:="0600"

Δυστυχώς, το ':=' δεν αναφέρεται καν στη σελίδα που διαβάζει σχεδόν όλος
ο κόσμος όταν θέλει να γράψει ένα UDEV rule, δηλαδή την
http://reactivated.net/writing_udev_rules.html, με αποτέλεσμα να ξοδέψω
πάνω από 2 ώρες με αυτό το πράγμα. Τελικά, το βρήκα τυχαία στο man page
του udev(7).





More information about the Linux-greek-users mailing list