Linux Scripting Tutorial 3o - Εντολές ανάθεσης δικαιωμάτων σε αρχεία και φακέλους
Πίνακας περιεχομένων:
- Δικαιώματα αρχείων Linux
- Χρησιμοποιώντας το
chmod - Συμβολική (Κείμενο) Μέθοδος
- Αριθμητική μέθοδος
- Χρησιμοποιώντας ένα αρχείο αναφοράς
- Ανταλλαγή αναδρομικά των δικαιωμάτων του αρχείου
- Λειτουργία σε συμβολικές συνδέσεις
- Αλλαγή των αδειών αρχείων χύμα
- συμπέρασμα
Στο Linux, η πρόσβαση στα αρχεία γίνεται μέσω των δικαιωμάτων αρχείων, των χαρακτηριστικών και της ιδιοκτησίας. Αυτό εξασφαλίζει ότι μόνο οι εξουσιοδοτημένοι χρήστες και οι διαδικασίες έχουν πρόσβαση σε αρχεία και καταλόγους.
Αυτό το σεμινάριο καλύπτει τον τρόπο χρήσης της εντολής
chmod
για να αλλάξετε τα δικαιώματα πρόσβασης αρχείων και καταλόγων.
Δικαιώματα αρχείων Linux
Προτού προχωρήσουμε περαιτέρω, ας εξηγήσουμε το βασικό μοντέλο δικαιωμάτων των Linux.
Στο Linux, κάθε αρχείο συσχετίζεται με έναν ιδιοκτήτη και μια ομάδα και έχει εκχωρηθεί δικαιώματα πρόσβασης για τρεις διαφορετικές κατηγορίες χρηστών:
- Ο ιδιοκτήτης του αρχείου. Τα μέλη της ομάδας. Άλλα (όλοι οι άλλοι).
Η ιδιοκτησία αρχείων μπορεί να αλλάξει χρησιμοποιώντας τις εντολές
chown
και
chgrp
.
Υπάρχουν τρεις τύποι δικαιωμάτων αρχείων που ισχύουν για κάθε κλάση:
- Η άδεια ανάγνωσης. Η άδεια εγγραφής. Η άδεια εκτέλεσης.
Αυτή η ιδέα σάς επιτρέπει να προσδιορίσετε σε ποιους χρήστες επιτρέπεται η ανάγνωση του αρχείου, η εγγραφή στο αρχείο ή η εκτέλεση του αρχείου.
Τα δικαιώματα αρχείων μπορούν να προβληθούν χρησιμοποιώντας την εντολή
ls
:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | | | | | | | | | | | +-----------> 7. Group | | | | | +-------------------> 6. Owner | | | | +--------------------------> 5. Alternate Access Method | | | +----------------------------> 4. Others Permissions | | +-------------------------------> 3. Group Permissions | +----------------------------------> 2. Owner Permissions +------------------------------------> 1. File Type
Ο πρώτος χαρακτήρας εμφανίζει τον τύπο αρχείου. Μπορεί να είναι κανονικό αρχείο (
-
), κατάλογος (
d
), συμβολικός σύνδεσμος (
l
) ή οποιοσδήποτε άλλος ειδικός τύπος αρχείου.
Οι επόμενοι εννέα χαρακτήρες αντιπροσωπεύουν τα δικαιώματα αρχείου, τρεις τριπλές τρεις χαρακτήρες το καθένα. Η πρώτη τριάδα εμφανίζει τα δικαιώματα κατόχου, τα δεύτερα δικαιώματα μιας ομάδας και η τελευταία τριάδα εμφανίζει όλα τα άλλα δικαιώματα. Τα δικαιώματα μπορούν να έχουν διαφορετική σημασία ανάλογα με τον τύπο αρχείου.
Στο παραπάνω παράδειγμα (
rw-r--r--
) σημαίνει ότι ο ιδιοκτήτης του αρχείου έχει δικαιώματα ανάγνωσης και εγγραφής (
rw-
), η ομάδα και άλλοι έχουν μόνο δικαιώματα ανάγνωσης (
r--
).
Κάθε μία από τις τρεις τριάδες δικαιωμάτων μπορεί να κατασκευαστεί από τους ακόλουθους χαρακτήρες και να έχει διαφορετικά αποτελέσματα, ανάλογα με το αν έχουν οριστεί σε ένα αρχείο ή σε έναν κατάλογο:
Επίδραση αδειών στα αρχεία
| Αδεια | Χαρακτήρας | Σημασία στο αρχείο |
|---|---|---|
| Ανάγνωση |
-
|
Το αρχείο δεν είναι αναγνώσιμο. Δεν μπορείτε να δείτε τα περιεχόμενα του αρχείου. |
r
|
Το αρχείο είναι ευανάγνωστο. | |
| Γράφω |
-
|
Το αρχείο δεν μπορεί να αλλάξει ή να τροποποιηθεί. |
w
|
Το αρχείο μπορεί να αλλάξει ή να τροποποιηθεί. | |
| Εκτέλεση |
-
|
Το αρχείο δεν μπορεί να εκτελεστεί. |
x
|
Το αρχείο μπορεί να εκτελεστεί. | |
s
|
Αν βρεθεί στην τριπλή
user
, ορίζει το bit
setuid
. Εάν βρίσκεται στην τριπλή
group
, ορίζει το bit
setgid
. Σημαίνει επίσης ότι έχει οριστεί η σημαία
x
.
Όταν οι σημαίες
|
|
S
|
Το ίδιο με το
s
αλλά η σημαία
x
δεν έχει οριστεί. Αυτή η σημαία χρησιμοποιείται σπάνια σε αρχεία. |
|
t
|
Αν βρεθεί στις
others
τριάδες, ορίζει το
sticky
bit.
Σημαίνει επίσης ότι έχει οριστεί η σημαία
|
|
T
|
Το ίδιο με το
t
αλλά η σημαία
x
δεν έχει οριστεί. Αυτή η σημαία είναι άχρηστη στα αρχεία. |
Επίδραση αδειών σε καταλόγους (φάκελοι)
Στο Linux, οι Κατάλογοι είναι ειδικοί τύποι αρχείων που περιέχουν άλλα αρχεία και καταλόγους.
| Αδεια | Χαρακτήρας | Σημασία του καταλόγου |
|---|---|---|
| Ανάγνωση |
-
|
Δεν είναι δυνατή η εμφάνιση των περιεχομένων του καταλόγου. |
r
|
Μπορούν να εμφανιστούν τα περιεχόμενα του καταλόγου.
(π.χ. Μπορείτε να καταχωρίσετε αρχεία μέσα στον κατάλογο με
|
|
| Γράφω |
-
|
Τα περιεχόμενα του καταλόγου δεν μπορούν να τροποποιηθούν. |
w
|
Τα περιεχόμενα του καταλόγου μπορούν να τροποποιηθούν.
(π.χ. Δεν μπορείτε να δημιουργήσετε νέα αρχεία, να διαγράψετε αρχεία κλπ.) |
|
| Εκτέλεση |
-
|
Ο κατάλογος δεν μπορεί να αλλάξει σε. |
x
|
Ο κατάλογος μπορεί να πλοηγηθεί χρησιμοποιώντας
cd
. |
|
s
|
Εάν βρίσκεται στην τριπλή
user
, ορίζει το bit
setuid
. Εάν βρίσκεται στην τριπλή
group
ορίζει το bit
setgid
. Σημαίνει επίσης ότι έχει οριστεί η σημαία
x
. Όταν η σημαία
setgid
έχει οριστεί σε έναν κατάλογο, τα νέα αρχεία που δημιουργούνται μέσα σε αυτήν κληρονομούν το αναγνωριστικό ομάδας καταλόγων (GID), αντί του πρωτεύοντος αναγνωριστικού ομάδας του χρήστη που δημιούργησε το αρχείο.
|
|
S
|
Το ίδιο με το
s
αλλά η σημαία
x
δεν έχει οριστεί. Αυτή η σημαία είναι άχρηστη στους καταλόγους. |
|
t
|
Αν βρεθεί στις
others
τριάδες, ορίζει το
sticky
bit.
Σημαίνει επίσης ότι έχει οριστεί η σημαία
|
|
T
|
Το ίδιο με το
t
αλλά η σημαία
x
δεν έχει οριστεί. Αυτή η σημαία είναι άχρηστη στους καταλόγους. |
Χρησιμοποιώντας το
chmod
Η εντολή
chmod
έχει την ακόλουθη γενική μορφή:
chmod MODE FILE…
Η εντολή
chmod
σάς επιτρέπει να αλλάζετε τα δικαιώματα σε ένα αρχείο χρησιμοποιώντας μια συμβολική ή αριθμητική λειτουργία ή ένα αρχείο αναφοράς. Θα σας εξηγήσουμε λεπτομερέστερα τις λειτουργίες. Η εντολή μπορεί να δεχτεί ένα ή περισσότερα αρχεία ή / και καταλόγους που χωρίζονται από το διάστημα ως επιχειρήματα.
Μόνο root, ο κάτοχος αρχείου ή ο χρήστης με δικαιώματα sudo μπορούν να αλλάξουν τα δικαιώματα ενός αρχείου. Προσέξτε ιδιαίτερα όταν χρησιμοποιείτε το
chmod
, ειδικά όταν αλλάζετε αναδρομικά τα δικαιώματα.
Συμβολική (Κείμενο) Μέθοδος
Η σύνταξη της εντολής
chmod
όταν χρησιμοποιείται η συμβολική λειτουργία έχει την ακόλουθη μορφή:
chmod perms… FILE…
Το πρώτο σύνολο σημαίας (
), οι σημαίες των χρηστών, καθορίζει ποιοι χρήστες ταξινομούν τα δικαιώματα στο αρχείο αλλάζουν.
-
u- Ο ιδιοκτήτης του αρχείου.g- Οι χρήστες που είναι μέλη της ομάδας.o- Όλοι οι άλλοι χρήστες.a- Όλοι οι χρήστες, ίδιοι με τοugo.
Εάν παραλείπεται η σημαία των χρηστών, η προεπιλογή είναι
a
και τα δικαιώματα που έχουν οριστεί από το umask δεν επηρεάζονται.
Το δεύτερο σύνολο σημαίας (
), οι σημαίες της λειτουργίας, ορίζουν αν πρέπει να καταργηθούν, να προστεθούν ή να οριστούν τα δικαιώματα:
-
-Αφαιρεί τα καθορισμένα δικαιώματα.+Προσθέτει καθορισμένα δικαιώματα.=Αλλάζει τα τρέχοντα δικαιώματα στα καθορισμένα δικαιώματα. Εάν δεν έχουν οριστεί δικαιώματα μετά το σύμβολο=, καταργούνται όλα τα δικαιώματα από την καθορισμένη κλάση χρήστη.
Τα δικαιώματα (
perms…
) μπορούν να οριστούν με μηδενικό ή ένα ή περισσότερα από τα παρακάτω γράμματα:
r
,
w
,
x
,
X
,
s
και
t
. Χρησιμοποιήστε ένα μόνο γράμμα από το σύνολο
u
,
g
και
o
όταν αντιγράφετε δικαιώματα από μία σε άλλη τάξη χρηστών.
Όταν ορίζετε δικαιώματα για περισσότερες από μία κατηγορίες χρηστών (
), χρησιμοποιήστε κόμματα (χωρίς κενά) για να διαχωρίσετε τις συμβολικές λειτουργίες.
Παρακάτω παρατίθενται ορισμένα παραδείγματα για τον τρόπο χρήσης της εντολής
chmod
σε συμβολική λειτουργία:
-
Δώστε στα μέλη της ομάδας την άδεια να διαβάσουν το αρχείο, αλλά να μην το γράψουν και να το εκτελέσουν:
chmod g=r filenameΚαταργήστε την άδεια εκτέλεσης για όλους τους χρήστες:
chmod ax filenameΑφαιρέστε ξαφνικά την άδεια εγγραφής για άλλους χρήστες:
chmod -R ow dirnameΚαταργήστε την άδεια ανάγνωσης, εγγραφής και εκτέλεσης για όλους τους χρήστες εκτός από τον κάτοχο του αρχείου:
chmod og-rwx filenameΤο ίδιο πράγμα μπορεί να επιτευχθεί και με τη χρήση της ακόλουθης μορφής:
chmod og= filenameΔώστε δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης στον ιδιοκτήτη του αρχείου, διαβάστε τα δικαιώματα για την ομάδα του αρχείου και δεν υπάρχουν δικαιώματα σε όλους τους άλλους χρήστες:
chmod u=rwx, g=r, o= filenameΠροσθέστε τα δικαιώματα κατόχου του αρχείου στα δικαιώματα που έχουν τα μέλη της ομάδας του αρχείου:
chmod g+u filenameΠροσθέστε ένα κολλητικό κομμάτι σε έναν συγκεκριμένο κατάλογο:
chmod o+t dirname
Αριθμητική μέθοδος
Η σύνταξη της εντολής
chmod
όταν χρησιμοποιείται αριθμητική μέθοδος έχει την ακόλουθη μορφή:
chmod NUMBER FILE…
Όταν χρησιμοποιείτε την αριθμητική λειτουργία, μπορείτε να ορίσετε ταυτόχρονα τις άδειες και για τις τρεις κατηγορίες χρηστών (ιδιοκτήτη, ομάδα και όλα τα υπόλοιπα).
Ο
NUMBER
μπορεί να είναι ένας αριθμός 3 ή 4 ψηφίων.
Όταν χρησιμοποιείται αριθμός 3 ψηφίων, το πρώτο ψηφίο αναπαριστά τα δικαιώματα του κατόχου του αρχείου, το δεύτερο από την ομάδα του αρχείου και το τελευταίο όλων των άλλων χρηστών.
Κάθε άδεια εγγραφής, ανάγνωσης και εκτέλεσης έχει την ακόλουθη τιμή αριθμού:
-
r(ανάγνωση) = 4w(εγγραφή) = 2x(εκτέλεση) = 1no δικαιώματα = 0
Ο αριθμός αδειών μιας συγκεκριμένης κατηγορίας χρηστών αντιπροσωπεύεται από το άθροισμα των τιμών των δικαιωμάτων για αυτήν την ομάδα.
Για να βρείτε τις άδειες του αρχείου σε αριθμητική κατάσταση, υπολογίστε απλώς τα σύνολα για όλες τις κατηγορίες χρηστών. Για παράδειγμα, για να διαβάσετε, να γράψετε και να εκτελέσετε δικαιώματα στον ιδιοκτήτη του αρχείου, να διαβάσετε και να εκτελέσετε δικαιώματα στην ομάδα του αρχείου και να διαβάσετε μόνο τα δικαιώματα σε όλους τους άλλους χρήστες, θα κάνατε τα εξής:
- Ιδιοκτήτης: rwx = 4 + 2 + 1 = 7Ομάδα: rx = 4 + 0 + 1 = 5Άλλα: rx = 4 + 0 + 0 = 4
Χρησιμοποιώντας την παραπάνω μέθοδο, καταλήγουμε στον αριθμό
754
, ο οποίος αντιπροσωπεύει τα επιθυμητά δικαιώματα.
Για να ρυθμίσετε τις σημαίες
setuid
,
setgid
και
sticky bit
χρησιμοποιήστε τον αριθμό τεσσάρων ψηφίων.
Όταν χρησιμοποιείται ο αριθμός των 4 ψηφίων, το πρώτο ψηφίο έχει την ακόλουθη σημασία:
- setuid = 4setgid = 2στικώς = 1οχι αλλαγές = 0
Τα επόμενα τρία ψηφία έχουν την ίδια σημασία με τη χρήση αριθμού 3 ψηφίων.
Εάν το πρώτο ψηφίο είναι 0, μπορεί να παραλειφθεί και η λειτουργία μπορεί να αναπαρασταθεί με 3 ψηφία. Ο αριθμητικός τρόπος λειτουργίας
0755
είναι ο ίδιος με τον
755
.
Για να υπολογίσετε την αριθμητική λειτουργία μπορείτε επίσης να χρησιμοποιήσετε μια άλλη μέθοδο (δυαδική μέθοδο), αλλά είναι λίγο πιο περίπλοκη. Η γνώση του τρόπου υπολογισμού του αριθμητικού τρόπου χρήσης με τα 4, 2 και 1 είναι επαρκής για τους περισσότερους χρήστες.
Μπορείτε να ελέγξετε τις άδειες του αρχείου στην αριθμητική σημείωση χρησιμοποιώντας την εντολή
stat
:
stat -c "%a" filename
644
Ακολουθούν μερικά παραδείγματα για τον τρόπο χρήσης της εντολής
chmod
σε αριθμητική λειτουργία:
-
Δώστε τα δικαιώματα ανάγνωσης και εγγραφής του ιδιοκτήτη του αρχείου και διαβάστε μόνο τα δικαιώματα των μελών της ομάδας και όλων των άλλων χρηστών:
chmod 644 dirnameΔώστε στον ιδιοκτήτη του αρχείου την ανάγνωση, την εγγραφή και την εκτέλεση δικαιωμάτων, την ανάγνωση και εκτέλεση δικαιωμάτων στα μέλη της ομάδας και χωρίς δικαιώματα σε όλους τους άλλους χρήστες:
chmod 750 dirnameΔώστε δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης και ένα κολλητικό κομμάτι σε έναν συγκεκριμένο κατάλογο:
chmod 1777 dirnameΑναδρομικά ρυθμίστε την ανάγνωση, εγγραφή και εκτέλεση δικαιωμάτων στον ιδιοκτήτη του αρχείου και δεν υπάρχουν δικαιώματα για όλους τους άλλους χρήστες σε έναν συγκεκριμένο κατάλογο:
chmod -R 700 dirname
Χρησιμοποιώντας ένα αρχείο αναφοράς
Η επιλογή
--reference=ref_file
σάς επιτρέπει να ορίσετε τα δικαιώματα του αρχείου να είναι ίδια με αυτά του καθορισμένου αρχείου αναφοράς (
ref_file
).
chmod --reference=REF_FILE FILE
Για παράδειγμα, η ακόλουθη εντολή θα εκχωρήσει τα δικαιώματα του
file1
στο
file2
Ανταλλαγή αναδρομικά των δικαιωμάτων του αρχείου
Για να λειτουργήσει αναδρομικά σε όλα τα αρχεία και τους καταλόγους κάτω από τον δεδομένο κατάλογο, χρησιμοποιήστε την επιλογή
-R
(
--recursive
):
chmod -R MODE DIRECTORY
Για παράδειγμα, για να αλλάξετε τα δικαιώματα όλων των αρχείων και υποκαταλόγων στον κατάλογο
/var/www
στο
755
, θα χρησιμοποιούσατε:
Λειτουργία σε συμβολικές συνδέσεις
Οι συμβολικές συνδέσεις έχουν πάντα
777
δικαιώματα.
Από προεπιλογή, κατά την αλλαγή των δικαιωμάτων του
chmod
, το
chmod
θα αλλάξει τα δικαιώματα του αρχείου που δείχνει ο σύνδεσμος.
chmod 755 symlink
Οι πιθανότητες είναι ότι αντί να αλλάξετε την ιδιοκτησία του στόχου, θα λάβετε ένα σφάλμα "δεν μπορείτε να αποκτήσετε πρόσβαση" στο σύζευγμα: Απαγόρευση αδειοδότησης ".
Το σφάλμα παρουσιάζεται επειδή από προεπιλογή στις περισσότερες διανομές Linux προστατεύονται συμβολικές συνδέσεις και δεν μπορείτε να λειτουργήσετε σε αρχεία προορισμού. Αυτή η επιλογή καθορίζεται στα
/proc/sys/fs/protected_symlinks
.
1
σημαίνει ενεργοποιημένη και
0
απενεργοποιημένη. Συνιστάται να μην απενεργοποιείτε την προστασία συμβόλων.
Αλλαγή των αδειών αρχείων χύμα
Μερικές φορές υπάρχουν καταστάσεις όπου θα χρειαστεί να κάνετε μαζική αλλαγή των αρχείων και των αρχείων καταλόγων.
Το πιο συνηθισμένο σενάριο είναι να αλλάξετε αναδρομικά τα δικαιώματα του αρχείου ιστότοπου στο
644
και τα δικαιώματα του καταλόγου σε
755
.
Χρησιμοποιώντας την αριθμητική μέθοδο:
find /var/www/my_website -type d -exec chmod 755 {} ;
find /var/www/my_website -type f -exec chmod 644 {} ;
Χρησιμοποιώντας τη συμβολική μέθοδο:
find /var/www/my_website -type d -exec chmod u=rwx, go=rx {} ;
find /var/www/my_website -type f -exec chmod u=rw, go=r {} ;
Η εντολή
find
θα αναζητήσει αρχεία και καταλόγους στο
/var/www/my_website
και θα περάσει κάθε αρχείο και κατάλογο που βρέθηκαν στην εντολή
chmod
για να ορίσετε τα δικαιώματα.
συμπέρασμα
Η εντολή
chmod
αλλάζει τα δικαιώματα του αρχείου. Οι άδειες μπορούν να οριστούν χρησιμοποιώντας είτε τη συμβολική είτε την αριθμητική λειτουργία.
Για να μάθετε περισσότερα σχετικά με το
chmod
επισκεφτείτε τη σελίδα man chmod.
Συμμαχία για τα δικαιώματα των πολιτών λέει ότι το νομοσχέδιο προστασίας δεδομένων της ΕΕ απειλεί τα δικαιώματα των πολιτών
Οι προτεινόμενες αλλαγές στους νόμους της Ευρώπης για την προστασία των προσωπικών δεδομένων θα απομακρύνουν τους πολίτες από τα δικαιώματά τους για την προστασία της ιδιωτικής ζωής
Πώς να αλλάξετε αναδρομικά τα δικαιώματα του αρχείου στο linux
Το Linux είναι ένα σύστημα πολλαπλών χρηστών και η πρόσβαση στα αρχεία ελέγχεται μέσω των αδειών, των ιδιοτήτων και της ιδιοκτησίας του αρχείου. Σε αυτό το άρθρο θα σας εξηγήσουμε πώς να αλλάζουμε αναδρομικά τα δικαιώματα των αρχείων και των καταλόγων.
Chown εντολή στο linux (ιδιοκτησία αρχείου)
Η εντολή chown σάς επιτρέπει να αλλάξετε την ιδιοκτησία χρήστη και / ή ομάδας σε ένα δεδομένο αρχείο, κατάλογο ή συμβολική σύνδεση. Σε αυτό το σεμινάριο, θα σας δείξουμε πώς να χρησιμοποιήσετε την εντολή chown μέσω πρακτικών παραδειγμάτων.







