Δημοσιεύτηκε: 27 Αύγ 2008, 11:20
από Dimitris
Και τώρα η συνέχεια!

Η σύνταξη της εντολής chgrp είναι:
Κώδικας: Επιλογή όλων
chgrp mygroup myfile

όπου mygroup είναι η ομάδα στην οποιά θα αλλάξει το αρχείο myfile. Mερικές επιλογές είναι -R η οποία αλλάζει και τις ομάδες στους υποφακέλους του myfile, αν υπάρχουν.

Αντίστοιχα, η σύνταξη της εντολής chown είναι:
Κώδικας: Επιλογή όλων
chown owner myfile

όπου owner είναι o καινούριος ιδιοκτήτης στον οποιά θα ανηκει το αρχείο myfile. Mερικές επιλογές είναι -R η οποία αλλάζει και τους ιδιοκτήτες στους υποφακέλους του myfile, αν υπάρχουν.

Η εντολή chmod αλλάζει τα δικαιώματα ως εξής:
Κώδικας: Επιλογή όλων
chmod mode myfile

όπου mode είναι τα νέα δικαιώματα του αρχείου myfile. Oι επιλογές του mode δίνονται με ένα γράμμα που δείχνει ποιον αφορά η αλλάγη (u, g, o), επειτα + για να προσθέσουμε δικαιώματα ή με - για να τα αφαιρέσουμε και έπειτα ακολουθουν τι δικαιώματα θέλουμε να δώσουμε ή να αφαιρέσουμε (r,w,x).

Με μερικά παραδείγματα θα γίνει πιο κατανοητό.
Κώδικας: Επιλογή όλων
ls -l
-rw-r--r--   1 dp  staff  0 Aug 27 10:01 myfile

έχουμε ένα απλό αρχείο με δικαιώματα αναγνωσης και τροποποίησης από τον ιδιοκτήτη (dp), αναγνωσης από την ομάδα (staff) και αναγνωσης από όλους τους άλλους. Η εντολή:
Κώδικας: Επιλογή όλων
chmod u+x myfile

δίνει στον ιδιοκτητη το δικαίωμα να το εκτελεσει το αρχειο. Φυσικά αν δεν είναι bash script, ή εκτελέσιμο πρόγραμμα ή python script, κτλ. θα βγάλει σφάλμα αν πάμε να το εκτελέσουμε με
Κώδικας: Επιλογή όλων
./myfile

Aλλά υποτίθεται ότι ξέρουμε σε ποια αρχεία δίνουμε το δικαίωμα της εκτέλεσης. Mε ls -l
Κώδικας: Επιλογή όλων
-rwxr--r--   1 dp  staff  0 Aug 27 10:01 myfile*

βλέπουμε στην πρώτη τριαδα το x. Aναλογα με τις ρυθμίσεις του κελύφους bash θα αλλάξει και το χρώμα του myfile (σε μενα βάζει ένα αστεράκι). Η εντολή:
Κώδικας: Επιλογή όλων
chmod u-x myfile

το επαναφέρει στην αρχική του κατάσταση.

Κώδικας: Επιλογή όλων
chmod go+w myfile

θα δώσει δικαιώματα τροποποίησης στην ομάδα staff και σε όλους τους άλλους. Το αποτελεσμα της ls -l θα είναι τότε:
Κώδικας: Επιλογή όλων
-rwxrw-rw-   1 dp  staff  0 Aug 27 10:01 myfile*

στη δεύτερη και την τρίτη στήλη θα υπάρχει και w.

Κώδικας: Επιλογή όλων
chmod o-wr myfile

θα αφαιρέσει το δικαίωμα τροποποιησης και αναγνωσης από όλους όσους δεν ανήκουν στην ομάδα staff.

Υπάρχει και ένας δεύτερος τρόπος περιγραφης των δικαίωματων, κάπως πιο απόκρυφος ο οποίος χρησιμοποιείται και κάπως παραλαγμένος στην umask (Θα φτάσουμε κι εκεί.) Την κάθε τριάδα μπορούμε να την δούμε σαν ένα δυαδικό αριθμό που αποτελείται από bits τα οποία μπορεί να είναι 0 ή 1. Όταν υπάρχει ένα δικαίωμα το αντίστοιχο bit είναι 1, όταν δεν υπάρχει είναι 0. Η τριάδα r-- θα είναι ο αριθμό 100 στο δυαδικό σύστημα, τον οποίο αν το μετατρέψουμε στο δεκαδικό θα είναι ο 1x2**2+0x2**1 +0x2**0 (** σημαίνει ύψωση σε δύναμη) δηλαδή 4. Αντίστοιχα η τριάδα rw- αντιστοιχεί στο δυαδικό αριθμό 110 ή στον δεκαδικό 6. Αν θέλουμε τώρα να δώσουμε τα δικαιώματα rw-r--r-- σε ένα αρχείο θα δίναμε την εντολή:
Κώδικας: Επιλογή όλων
chmod 644 myfile


Άσκηση: Ποιο θα είναι το αποτέλεσμα της εντολής;
Κώδικας: Επιλογή όλων
chmod 755 myfile