Δημοσιεύτηκε: 25 Μαρ 2011, 19:19
από medigeek
Λέξεις-κλειδιά: fstab, ntfs, ntfs-3g, vfat, fat32, fat

Ο οδηγός προϋποθέτει ότι γνωρίζετε περί:
- χρήσης /etc/fstab
- επεξεργασία αρχείων, π.χ. gksu gedit /etc/fstab
- mounts, partitions
- linux permissions



Πρόβλημα 1: Θέλετε να κάνετε mount ένα δίσκο/partition ntfs ή fat32 κατά την εκκίνηση του υπολογιστή. Το προσθέσατε στο αρχείο /etc/fstab με την παράμετρο "defaults" όμως δεν έχετε τα κατάλληλα δικαιώματα (permissions) για να δημιουργήσετε, διαγράψετε, επεξεργαστείτε αρχεία.

Πρόβλημα 2: Θέλετε να κάνετε mount ένα δίσκο/partition ntfs ή fat32 κατά την εκκίνηση του υπολογιστή. Θέλετε επίσης αυτό το partition να είναι προσβάσιμο από άλλους χρήστες. Αυτοί οι χρήστες ανήκουν σε μια ομάδα-group ("disk").

Λύση: Από προσωπική εμπειρία, αντί "defaults" χρησιμοποιώ:
Κώδικας: Επιλογή όλων
defaults,locale=en_US.utf8,uid=1000,gid=6,umask=0022,nosuid,nodev,allow_other,default_permissions


Παράδειγμα:
Κώδικας: Επιλογή όλων
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>

proc   /proc   proc   nodev,noexec,nosuid   0   0
#Entry for /dev/sda1 :
UUID=dc6da6c1-e8e7-4e1c-92f2-304e6a3217ed   /   ext4   errors=remount-ro   0   1
#Entry for /dev/sda3 :
UUID=f5c288aa-acd3-48e7-9217-e2dc412f3de3   /home   ext4   defaults   0   2
#Entry for /dev/sdd3 :
UUID=1ba5ca25-f700-4aad-990f-7d1875ebc173   /media/300gb   ext4   defaults   0   2
#Entry for /dev/sda2 :
UUID=e4c071a0-9ed3-49ca-9c4e-54cd3a1abee0   none   swap   sw   0   0
#Entry for /dev/sdb1 :
UUID=1CC5717122331034   /media/1500gb   ntfs defaults,locale=en_US.utf8,uid=1000,gid=6,umask=0022,nosuid,nodev,allow_other,default_permissions   0   0


Τι κάνει το παραπάνω;

1. locale=en_US.utf8
Θέτει το locale en_US.utf8 -- θα χρησιμοποιεί κωδικοποίηση utf-8

2. uid=1000
Θέτει το uid (user id) του χρήστη με αριθμό 1000. Τα αρχεία θα ανήκουν στο χρήστη με τον αριθμό αυτό, αντί στο root (που είναι το default).

Για να δείτε ποιος είναι ο αριθμός του χρήστη σου εκτελείτε στο τερματικό:
Κώδικας: Επιλογή όλων
id


$ id
uid=1000(savvas) gid=1000(savvas) groups=1000(savvas)[...]


3. gid=6
Θέτει το gid (group id) του χρήστη με αριθμό 6. Τα αρχεία θα ανήκουν στην ομάδα με τον αριθμό αυτό, αντί στο root (που είναι το default).

Για να δειτε τις ομάδες (groups) μιας διανομής linux:
Κώδικας: Επιλογή όλων
cat /etc/group


$ cat /etc/group
[...]
tty:x:5:
disk:x:6:savvas,user2,user3
lp:x:7:savvas
mail:x:8:
[...]


3α. Αν δεν υπάρχει ομάδα "disk", μπορείτε να δημιουργήσετε μια καινούργια ομάδα:
Κώδικας: Επιλογή όλων
sudo addgroup disk

..και προσθέστε τον χρήστη (εσάς) ως μελος της ομάδας. (Βλέπε (3γ))

3β. Στην περίπτωση μου χρησιμοποιώ την ομάδα "disk" (gid 6).
Καλύτερα να θέσεις μια ξεχωριστή ομάδα, όπως το disk, ούτως ώστε να μπορούν να έχουν πρόσβαση κι άλλοι χρήστες (εκτός από τον ιδιοκτήτη, δλδ τον χρήστη με uid 1000).
Για να έχουν πρόσβαση άλλοι χρήστες θα πρέπει να προστεθούν στην ομάδα (εδώ "disk")

3γ. Πώς προσθέτουμε χρήστες στην ομάδα "disk";

Για να προσθέσετε τον τρέχων χρήστη (δλδ εσάς), εκτελείτε:
Κώδικας: Επιλογή όλων
sudo adduser $USER disk


Για να προσθέσετε άλλους χρήστες:
Κώδικας: Επιλογή όλων
sudo adduser user1 disk

..όπου user1 = ο χρήστης που θέλετε να γίνει μέλος της ομάδας "disk".

Κατά την πρόσθεση/αφαίρεση μελών σε μια ομάδα πρέπει μετά την εκτέλεση των παραπάνω εντολών να κάνετε logout / login



4. umask=0022
Με αυτή την παράμετρο, θέτουμε τα default permissions για καινούργια αρχεία και φακέλους (αυτά που δημιουργήσατε μετά το mount).
Συγκεκριμένα:
755 (rwxr-xr-x) για φακέλους
644 (rwxr--r--) για αρχεία

Περισσότερα εδώ: http://www.cyberciti.biz/tips/understan ... usage.html

5. nosuid, nodev
http://www.faqs.org/docs/securing/chap5sec45.html
nosuid: Do not set SUID/SGID access on this partition.
nodev: Do not set character or special devices access on this partition.


6. allow_other
Με αυτά θέτουμε το linux permissions για τρίτους (εκτός από τον ιδιοκτήτη και την ομάδα "disk" -- οι υπόλοιποι) να έχουν επίσης πρόσβαση.
Μπορείτε να το αφαιρέσετε αν δεν νιώθετε ασφάλεια με αυτή την παράμετρο.

7. default_permissions
Θέτει τα προεπιλεγμένα permissions σε αρχεία που ήδη υπάρχουν στο δίσκο.
Συγκεκριμένα:
755 (rwxr-xr-x) για φακέλους
655 (rwxr-xr-x) για αρχεία

8. defaults
Θέτει default τιμές για όλες τις υπόλοιπες παραμέτρους, εκτός από τις παραπάνω.

Πιθανόν να υπάρχουν παραμετροι που να μην χρειάζονται. Εισηγήσεις; :)