Sunday, October 26, 2008

XFCE Automounting & άλλα annoyances ;)

Το FreeBSD είναι γνωστό ότι χρειάζεται αρκετές "χειροκίνητες" ρυθμίσεις για να γίνει ένα συνηθισμένο desktop. Σε πολλούς αυτό φαίνεται ως χάσιμο χρόνου, όμως σε όσους ασχολούνται είναι απλώς μια ευκαιρία για μάθηση και βαθύτερη κατανόηση του συστήματος τους.
Οι περισσότεροι χρήστες θεωρούν δεδομένο ότι μόλις συνδέσουν το usb flash drive τους, θα προσαρτηθεί αυτόματα και θα εμφανιστεί το σχετικό εικονίδιο στην επιφάνεια εργασίας τους.
Το παραπάνω σχετίζεται με μια σειρά αυτοματισμών που θα πρέπει να ρυθμίσετε στο FreeBSD με τον παραδοσιακό τρόπο (ρύθμιση conf αρχείων). Εδώ εξετάζουμε πως μπορεί να γίνει στο γραφικό περιβάλλον του XFCE4, αν και αντίστοιχες ρυθμίσεις θα χρειαστούν και για άλλα γραφικά περιβάλλοντα.

Βήμα 1ο: Επιτρέψτε το mounting από κανονικούς χρήστες


Οι παρακάτω πληροφορίες υπάρχουν στο FreeBSD Handbook και το FAQ. Τις αναδημοσιεύουμε εδώ στα ελληνικά, καθώς η μετάφραση των κεφαλαίων αυτών δεν έχει ολοκληρωθεί ακόμα.
Για να μπορεί ένας απλός χρήστης να προσαρτήσει συστήματα αρχείων από CD/DVD και flash drives, θα πρέπει:
  • Να γίνει ρύθμιση του πυρήνα με ένα κατάλληλο sysctl

  • Να δοθούν τα κατάλληλα permissions στις αντίστοιχες συσκευές, στον κατάλογο /dev. Αυτό είναι αρκετά απλό για συσκευές που υπάρχουν στο σύστημα ήδη από την εκκίνηση (CD-ROM) αλλά είναι ελαφρά πιο σύνθετο για συσκευές που προσθαφαιρούνται δυναμικά (USB drives).

  • Το σημείο προσάρτησης πρέπει να έχει κατάλληλα δικαιώματα (ιδιοκτήτης πρέπει να είναι ο χρήστης)
Τα παραπάνω είναι οι ρυθμίσεις που πρέπει να γίνουν για το βασικό σύστημα, και δεν είναι για αυτόματη προσάρτηση: Απλώς εξασφαλίζουν ότι ένας κανονικός χρήστης μπορεί να προσαρτήσει κάποια συστήματα αρχείων χωρίς να χρειάζεται να γίνει root ή να χρησιμοποιήσει το sudo.

Ρύθμιση του Πυρήνα


Αρκετά εύκολο. Εκτελέστε την εντολή:

# sysctl vfs.usermount=1

Προσθέστε επίσης την παρακάτω γραμμή στο /etc/sysctl.conf ώστε να ενεργοποιείται σε κάθε εκκίνηση:

vfs.usermount=1

Η ρύθμιση του πυρήνα έχει ολοκληρωθεί.

Ρύθμιση των συσκευών (/dev)


Για να μπορεί κάποιος χρήστης να χρησιμοποιεί τις συσκευές που δημιουργούνται όταν συνδέουμε κάποιο usb flash drive, θα πρέπει να έχει δικαιώματα σε αυτές. Οι συσκευές αυτές στο FreeBSD φαίνονται ως scsi, με ονόματα του τύπου /dev/daX. Θα πρέπει λοιπόν να δώσουμε τις κατάλληλες οδηγίες στο devfs ώστε οι συσκευές να δημιουργούνται με τα κατάλληλα permissions. Προσθέτουμε την παρακάτω γραμμή στο /etc/devfs.rules:

[localrules=5]
add path 'da*' mode 0660 group operator


Θα πρέπει να ενεργοποιήσουμε αυτούς τους κανόνες, προσθέτοντας το παρακάτω στο /etc/rc.conf:

devfs_system_ruleset="localrules"


Μια και είμαστε εδώ, ας κάνουμε το ίδιο και για το CD-ROM drive. Τυπικά το CD-ROM δεν είναι αφαιρούμενη συσκευή σε ένα σύστημα (εκτός αν είναι USB, αλλά τότε καλύπτεται από τους παραπάνω κανόνες). Χρειάζεται να προσθέσουμε τις παρακάτω γραμμές στο /etc/devfs.conf το οποίο αφορά την εκκίνηση του συστήματος:

own /dev/acd0 root:operator
perm /dev/acd0 0660


Αν η συσκευή CD-ROM έχει άλλο όνομα, προσαρμόστε κατάλληλα τις παραπάνω γραμμές. Αν έχετε παραπάνω από μια συσκευή CD-ROM, θα έχετε και /dev/acd1. Τέλος αν χρησιμοποιείτε το atapicam module, θα έχετε και συσκευές τύπου /dev/cd0 (SCSI).

Αν προσέξετε τις παραπάνω οδηγίες, έχουμε δώσει δικαιώματα στο operator group. Αν ο λογαριασμός σας δεν ανήκει στο operator group, θα πρέπει να τον προσθέσετε:

# pw groupmod operator -m myusername


Προσάρτηση


Η ρύθμιση έχει ολοκληρωθεί. Αν δημιουργήσετε π.χ. τον κατάλογο mymount στο home σας (οπότε σίγουρα θα είστε ιδιοκτήτης) θα μπορείτε να προσαρτήσετε κάποιο CD-ROM γράφοντας:

$ mount -t cd9660 /dev/acd0 ~/mymount

και κάποιο USB flash drive, με κάτι σαν:

$ mount -t msdosfs /dev/da0s1 ~/mymount

Μην ξεχάσετε να αποπροσαρτήσετε το USB flash πριν το αφαιρέσετε! Αλλιώς θα έχετε πραγματικά δυσάρεστες συνέπειες...

Βήμα 2ο: Ρυθμίστε το XFCE


Εδώ οι ρυθμίσεις είναι πολύ απλές. Θα χρειαστεί να προσθέσετε τις παρακάτω γραμμές στο /usr/local/etc/PolicyKit/PolicyKit.conf:

<match action="org.freedesktop.hal.storage.mount-removable">
<return result="yes" />
</match>


Μπορείτε να κάνετε τους κανόνες πιο περιοριστικούς, βάζοντας γύρω από το παραπάνω ένα <match user="myusername"> ... </match> ώστε να περιρρίσετε τη δυνατότητα σε ένα συγκεκριμένο λογαριασμό.

Για να μπορείτε να ρυθμίσετε το automount του XFCE, εγκαταστήστε το πακέτο thunar-volman-plugin:

# cd /usr/ports/sysutils/thunar-volman-plugin
# make install clean


Στα XFCE settings θα έχετε πλέον και επιλογή "Removable Drives and Media" από την οποία μπορείτε να ορίσετε τι και αν θα γίνεται auto-mount.

Σημείωση: Από προεπιλογή ο Thunar (file manager) του XFCE στο FreeBSD δεν περιέχει στις ρυθμίσεις του το FAM (File Alteration Monitor). Αυτό σημαίνει π.χ. ότι αν δημιουργήσετε σε ένα terminal ένα κατάλογο στο Desktop, δεν θα εμφανιστεί μέχρι να πάτε στο Desktop και να πιέσετε το F5. Αυτό φυσικά είναι χαζό: εμείς θέλουμε το Desktop μας να ανανεώνεται αυτόματα. Μεταγλωττίστε λοιπόν ξανά το Thunar, αυτή τη φορά με FAM support:

# cd /usr/ports/x11-fm/thunar
# make deinstall
# make config
(επιλέξτε το FAM στο διάλογο)
# make install clean


Τελειώσατε! Τι; Φάγατε όλο το απόγευμα; Ήταν δημιουργικό όμως ;)

Περαιτέρω Διάβασμα: FreeBSD Handbook: Storage (Αγγλικά, για την ώρα :) )

No comments: