Next Previous Contents

4. Η μεγάλη αναμονή για την αποπροσάρτηση (unmount)

Μερικοί από εσάς βλέποντας τα δευτερόλεπτα αναμονής, θα σκέφτηκαν ότι είναι αρκετός χρόνος περιμένοντας να βγει μια δισκέτα. Ίσως να συγχρόνιζα τους δίσκους (sync) και να την έβγαζα προσαρτημένη, χωρίς κανείς να καταλάβει τίποτα. Επιτρέψτε μου να προτείνω ασφαλέστερους τρόπους. Πρώτα από όλα, μπορείτε να αλλάξετε το χρονικό διάστημα. Αλλά αυτό μπορεί να είναι λίγο ανεπαρκές, λέγοντας στο σύστημα να αποπροσαρτήσει κάτι μετά από μόλις 15 δευτερόλεπτα ή κάτι άλλο. Εξαρτώμενο από την δική σας εγκατάσταση, μπορεί να είστε σε θέση να εκτελέσετε την εντολή umount ως απλός χρήστης. Αλλά στην πραγματικότητα υπάρχει τρόπος να ζητήσετε από το automount πρόγραμμα να αποπροσαρτήσει. Αν στείλετε (με το πρόγραμμα kill) το σήμα (signal) SIGUSR1 προς τη διεργασία automount, θα αποπροσαρτήσει οτιδήποτε μπορεί. Αλλά προτού αρχίσετε να φτιάχνετε πλήκτρα αποπροσάρτησης στους διαχειριστές παραθύρων σας, υπάρχει ένα μικρό πρόβλημα.

Η διεργασία του automount τρέχει από τον χρήστη root, και signals θα δεχθεί μόνο από τον ίδιο χρήστη. Οι μισοί από τους λόγους για τους οποίους πιθανόν κάνετε αυτόματη προσάρτηση είναι ώστε να μπορείτε να προσαρτείτε κάτι αποπροσαρτημένο χωρίς να είστε root. Θα ήταν εύκολο να γράψετε ένα suid-root πρόγραμμα σε C το οποίο να κάνει τη βρόμικη δουλειά. Ωστόσο, χρησιμοποιώντας τη sudo είναι πιθανό να επιτρέψετε στους χρήστες να στείλουν το κατάλληλο kill signal. Το μοναδικό πρόβλημα είναι ότι η sudo δεν θα σας επιτρέψει να χρησιμοποιήσετε ` για να επεξεργαστείτε υποεντολές, που θα θέλατε να κάνετε για να βρείτε το τρέχον PID. Θα πρέπει να έχετε ένα πρόγραμμα που λέγεται killall, που θα σας επιτρέψει να κάνετε αυτό: (ευχαριστώ για τις προτάσεις)

ALL     ALL=NOPASSWD:/usr/bin/killall -USR1 automount
Διαφορετικά, θα πρέπει να επιτρέψετε στους χρήστες σας να στέλνουν -SIGUSR1 σε όλες τις διεργασίες. Αυτό έχει ποικίλες επιδράσεις στα προγράμματα. Μπορεί να ανακυκλώσει αρκετούς διαχειριστές παραθύρων, αλλά θα σκοτώσει (kill) τον xemacs. Έτσι λοιπόν ελπίζετε να μην υπάρχουν ξεχειλίσματα στην ενδιάμεση μνήμη (buffer overrun) της killall...


Next Previous Contents