Linux Scripting Κεφάλαιο 3 – Εντολές ανάθεσης δικαιωμάτων σε αρχεία και φακέλους
Δημοσιεύτηκε από τον/την codebrakes στις
Linux Scripting
Κεφάλαιο 3 - Εντολές ανάθεσης δικαιωμάτων σε αρχεία και φακέλους
Εντολές Administrator
ls -l – Στον τρέχον φάκελο εμφάνησε τα δικαιώματα (read, write, execute) που έχει το αρχείο file.txt.
sudo «εντολή» – Εκτέλεση της εντολής που δίνουμε σαν όρισμα ως διαχειριστής.
codebrakes@mint:~$ ls -l *file.txt
-rw-r–r– 1 codebrakes codebrakes 0 Jul 30 14:52 file.txt
codebrakes@mint:~$ sudo chmod +rxw file.txt
codebrakes@mint:~$ ls -l *file.txt
-rwxr-xr-x 1 codebrakes codebrakes 0 Jul 30 14:52 file.txt
Μέθοδοι πρόσβασης (Access modes)
Η εξουσιοδότηση δικαιωμάτων είναι ίσως η πιο σημαντική δυνατότητα των Unix συστημάτων. Κάθε αρχείο σε ένα Unix λειτουργικό σύστημα έχει τα παρακάτω χαρακτηριστικά:
- Εξουσιοδότηση δημιουργού (owner permissions): Η εξουσιοδότηση δημιουργού καθορίζει τις ενέργειες που μπορεί να εκτελέσει ο δημιουργός ενός αρχείου σε αυτό.
- Εξουσιοδότηση ομάδας (group permissions): Η εξουσιοδότηση ομάδας καθορίζει τις ενέργειες που μπορεί να λάβει ένας χρήστης σε ένα αρχείο, όπου είναι και τα δύο στην ίδια ομάδα (group).
- Γενική εξουσιοδότηση (other permissions): Η γενική εξουσιοδότηση καθορίζει τις ενέργειες που οι διάφοροι χρήστες έχουν σε ένα αρχείο.
Όπως είδαμε και στο προηγούμενο κεφάλαιο χρησιμοποιώντας την εντολή ls -l μας δείχνει όλους τους υποφακέλους και τα αρχεία ενός κύριου φακέλου και τα δικαιώματα που έχει κάθε χρήστης πάνω σε αυτούς τους φακέλους ή αρχεία.
codebrakes@mint:~$ ls -l
total 36
drwxr-xr-x 2 codebrakes codebrakes 4096 Jul 27 16:09 Desktop
drwxr-xr-x 2 codebrakes codebrakes 4096 Jul 27 16:09 Documents
drwxr-xr-x 2 codebrakes codebrakes 4096 Jul 27 16:09 Downloads
drwx—— 8 codebrakes codebrakes 4096 Jul 28 17:32 Dropbox
drwxr-xr-x 2 codebrakes codebrakes 4096 Jul 27 16:09 Music
drwxr-xr-x 2 codebrakes codebrakes 4096 Jul 27 16:09 Pictures
drwxr-xr-x 2 codebrakes codebrakes 4096 Jul 27 16:09 Public
drwxr-xr-x 2 codebrakes codebrakes 4096 Jul 27 16:09 Templates
drwxr-xr-x 2 codebrakes codebrakes 4096 Jul 27 16:09 Videos
codebrakes@mint:~$ |
Προβολή δικαιωμάτων σε αρχεία και φακέλους στο τρέχον μονοπάτι
Η πρώτη στήλη αντιπροσωπεύει τις διάφορες μεθόδους πρόσβασης (εξουσιοδοτήσεις) που συσχετίζονται με έναν φάκελο ή αρχείο. Οι διάφορες εξουσιοδοτήσεις διαχωρίζονται σε groups των τριών όπου καθένα ορίζει μια συγκεκριμένη λειτουργία στον χρήστη: read (r), write (w) και execute (x).
Οι εξουσιοδοτήσεις σε φακέλους είναι παρόμοιες με αυτές και των αρχείων. Παρόλα αυτά υπάρχουν διαφορές στην λειτουργία των μεθόδων πρόσβασης.
- Read (r): Πρόσβαση σε έναν φάκελο σημαίνει ότι ένας χρήστης έχει δικαίωμα να δει τα περιεχόμενα ενός φακέλου. Η εξουσιοδότηση αυτή μας δίνει λοιπόν την δυνατότητα να δούμε τα περιεχόμενα ενός φακέλου.
- Write (w): Η τροποποίηση περιεχομένων σε έναν φάκελο σημαίνει ότι ένας χρήστης έχει το δικαίωμα να προσθέτει σε αυτόν τον φάκελο αρχεία ή να τα διαγράφει. Η εξουσιοδότηση αυτή μας δίνει λοιπόν την δυνατότητα να προσθέσουμε και να αφαιρέσουμε αρχεία από έναν φάκελο.
- Execute (x): Η εξουσιοδότηση εκτέλεσης δεν έχει ιδιαίτερη σημασία πάνω σε φακέλους. Χρησιμοποιείται περισσότερο σε αρχεία.
Ας πάρουμε για παράδειγμα ένα αρχείο (πχ file) το οποίο θέλουμε να του δώσουμε δικαιώματα εγγραφής μόνο από τον owner. Για να αλλάξουμε τα δικαιώματα του αρχείου file σκεφτόμαστε τα εξής:
- Read (δικαίωμα ανάγνωσης): Στους owner, group και Others δεν θέλουμε δικαίωμα ανάγνωσης. Άρα βάζουμε 0.
- Write (Δικαίωμα εγγραφής): Στον owner θέλουμε δικαίωμα εγγραφής άρα του δίνουμε την τιμή 1. Στο group και others επειδή δεν θέλουμε να έχουν δικαίωμα εγγραφής βάζουμε την τιμή 0.
- Execute (δικαίωμα εκτέλεσης): Στους owner, group και Others δεν θέλουμε δικαίωμα εκτέλεσης. Άρα βάζουμε 0.
Με βάση λοιπόν αυτά τα δεδομένα έχουμε:
Αριθμός | Επεξήγηση Εξουσιοδότησης | Συμβολισμός |
0 | Καμία εξουσιοδότηση (No permission) | — |
1 | Εκτέλεση (execute) | –x |
2 | Επεξεργασίας (write) | -w- |
3 | Εκτέλεσης και επεξεργασίας (execute – write) | -wx |
4 | Ανάγνωσης (read) | r– |
5 | Εκτέλεσης και ανάγνωσης (read – execute) | r-x |
6 | Επεξεργασίας και ανάγνωσης (read – write) | rw- |
7 | Πλήρης εξουσιοδότηση | rwx |
Όσοι εξακολουθούν να μην το καταλαβαίνουν και τους φαίνεται δυσνόητος ο παραπάνω τρόπος υπάρχει επίσης μια δεύτερη εναλλακτική λύση:
Mode | Επεξήγηση Εξουσιοδότησης |
u | Owner |
g | Group |
o | Others |
a | Όλοι |
+ | Προσθέτει ιδιότητα |
– | Αφαιρεί ιδιότητα |
x | Δικαίωμα εκτέλεσης |
r | Δικαίωμα ανάγνωσης |
w | Δικαίωμα εγγραφής |
Με βάση λοιπόν τους παραπάνω πίνακες της προηγούμενης διαφάνειας γράφουμε τις εξής εντολές στο terminal:
- chmod a-xrw (Για να αφαιρέσουμε τα δικαιώματα από όλους)
Και έπειτα:
- chmod u+w (Για να προσθέσουμε στον owner το δικαίωμα εγγραφής)
codebrakes@mint:~$ ls -l file.txt
-rw-r–r– 1 codebrakes codebrakes 0 Jul 31 15:37 file.txt
codebrakes@mint:~$ sudo chmod a-wrx file.txt
[sudo] password for codebrakes:
codebrakes@mint:~$ ls -l file.txt
———- 1 codebrakes codebrakes 0 Jul 31 15:37 file.txt
Προσοχή: Η παραπάνω διαδικασία είναι ακριβώς η ίδια με τις παραπάνω διαφάνειες. Κάνουν δηλαδή το ίδιο πράγμα. Είτε το ένα κάνετε είτε το άλλο το ίδιο αποτέλεσμα θα βγει
Αλλαγή ιδιοκτησίας
Η εντολή chown αλλάζει τον δημιουργό ή ιδιοκτήτη ενός αρχείου και συντάσσεται ως εξής:
codebrakes@mint:~$ chown “όνομα χρήστη π.χ. codebrakes” file.txt
Ο πρώτος τελεστής (όπου στο παράδειγμα μας είναι η λέξη user) πρέπει να είναι ένας ενεργός χρήστης σε αυτό το λειτουργικό Linux όπου έχει αυτό το όνομα. Επίσης για να δούμε πόσοι χρήστες υπάρχουν στο Linux λειτουργικό μας σύστημα χρησιμοποιούμε την εντολή ls /home.
codebrakes@mint:~$ ls /home
codebrakes
Τελευταία ενημέρωση: 10/05/2018