Android

Umask εντολή στο linux

2-la commande DS Partie1 #Darija

2-la commande DS Partie1 #Darija

Πίνακας περιεχομένων:

Anonim

Σε λειτουργικά συστήματα Linux και Unix, δημιουργούνται όλα τα νέα αρχεία με προεπιλεγμένο σύνολο δικαιωμάτων. Το βοηθητικό πρόγραμμα umask σάς επιτρέπει να προβάλετε ή να ορίσετε τη μάσκα δημιουργίας λειτουργίας αρχείου, η οποία καθορίζει τα bits δικαιωμάτων για τα νέα αρχεία ή τους καταλόγους.

Χρησιμοποιείται από mkdir, touch, tee και άλλες εντολές που δημιουργούν νέα αρχεία και καταλόγους.

Δικαιώματα Linux

Προτού προχωρήσουμε περαιτέρω, ας εξηγήσουμε σύντομα το μοντέλο δικαιωμάτων των Linux.

Στο Linux, κάθε αρχείο συσχετίζεται με έναν ιδιοκτήτη και μια ομάδα και έχει εκχωρηθεί δικαιώματα πρόσβασης για τρεις διαφορετικές κατηγορίες χρηστών:

  • ο ιδιοκτήτης του αρχείου. τα μέλη του ομίλου.

Υπάρχουν τρεις τύποι δικαιωμάτων που ισχύουν για κάθε κατηγορία:

  • το δικαίωμα ανάγνωσης permission.the άδεια εκτέλεσης.

Αυτή η ιδέα σάς επιτρέπει να προσδιορίσετε σε ποιους χρήστες επιτρέπεται η ανάγνωση του αρχείου, η εγγραφή στο αρχείο ή η εκτέλεση του αρχείου.

Για να προβάλετε τα δικαιώματα αρχείων, χρησιμοποιήστε την εντολή ls :

ls -l dirname

drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type

Ο πρώτος χαρακτήρας αντιπροσωπεύει τον τύπο αρχείου που μπορεί να είναι κανονικό αρχείο ( - ), κατάλογος ( d ), συμβολικός σύνδεσμος ( l ) ή οποιοσδήποτε άλλος ειδικός τύπος αρχείου.

Οι επόμενοι εννέα χαρακτήρες αντιπροσωπεύουν τα δικαιώματα, τρία σύνολα τριών χαρακτήρων έκαστο. Τα πρώτα σύνολα εμφανίζουν τα δικαιώματα κατόχου, τα δεύτερα δικαιώματα μιας ομάδας και το τελευταίο σύνολο εμφανίζει όλα τα άλλα δικαιώματα.

Ο χαρακτήρας r με μια οκταδική τιμή 4 σημαίνει ανάγνωση, w με μια οκταδική τιμή 2 για εγγραφή, x με μια οκταδική τιμή 1 για την εκτέλεση άδειας και ( - ) με οκταδική τιμή 0 χωρίς δικαιώματα.

Υπάρχουν επίσης τρεις άλλοι ειδικοί τύποι αδειών αρχείων: setuid , setgid και Sticky Bit .

Στο παραπάνω παράδειγμα ( rwxr-xr-x ) σημαίνει ότι ο ιδιοκτήτης έχει δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης ( rwx ), η ομάδα και άλλα έχουν διαβάσει και εκτελέσει δικαιώματα.

Εάν εκπροσωπούμε τα δικαιώματα αρχείων χρησιμοποιώντας μια αριθμητική συμβολική αναφορά, θα βρούμε τον αριθμό 755 :

  • Ιδιοκτήτης: rwx = 4+2+1 = 7 Ομάδα: rx = 4+0+1 = 5 Άλλοι: rx = 4+0+1 = 5

Όταν εκπροσωπούνται σε αριθμητική σημείωση, τα δικαιώματα μπορούν να έχουν τρία ή τέσσερα οκταδικά ψηφία (0-7). Το πρώτο ψηφίο αντιπροσωπεύει τα ειδικά δικαιώματα και εάν παραλείπεται αυτό σημαίνει ότι δεν έχουν οριστεί ειδικά δικαιώματα στο αρχείο. Στην περίπτωση μας 755 είναι ίδια με 0755 . Το πρώτο ψηφίο μπορεί να είναι ένας συνδυασμός 4 για setuid , 2 για setgid και 1 για Sticky Bit .

Οι άδειες αρχείων μπορούν να αλλάξουν χρησιμοποιώντας την εντολή chmod και την ιδιοκτησία χρησιμοποιώντας την chown .

Κατανόηση του umask

Από προεπιλογή, στα συστήματα Linux, τα προεπιλεγμένα δικαιώματα δημιουργίας είναι 666 για αρχεία, τα οποία παρέχουν δικαιώματα ανάγνωσης και εγγραφής σε χρήστες, ομάδες και άλλα και σε 777 για καταλόγους, που σημαίνει ότι διαβάζουν, γράφουν και εκτελούν δικαιώματα σε χρήστες, ομάδες και οι υπολοιποι. Το Linux δεν επιτρέπει την δημιουργία ενός αρχείου με δικαιώματα εκτέλεσης.

Τα προεπιλεγμένα δικαιώματα δημιουργίας μπορούν να τροποποιηθούν χρησιμοποιώντας το βοηθητικό πρόγραμμα umask .

umask επηρεάζει μόνο το τρέχον περιβάλλον κελύφους. Στις περισσότερες διανομές Linux, η προεπιλεγμένη τιμή umask σε ολόκληρο το σύστημα έχει οριστεί στο pam_umask.so ή /etc/profile .

Για να δείτε την τρέχουσα τιμή της μάσκας, απλά πληκτρολογήστε umask χωρίς κανένα επιχείρημα:

umask

Η έξοδος θα περιλαμβάνει το

022

Η τιμή umask περιέχει τα bits permission που ΔΕΝ θα ρυθμιστούν στα αρχεία και στους καταλόγους που μόλις δημιουργήσατε.

Όπως έχουμε ήδη αναφέρει, τα προεπιλεγμένα δικαιώματα δημιουργίας για τα αρχεία είναι 666 και για τους καταλόγους 777 . Για να υπολογίσετε τα bits permission των νέων αρχείων, αφαιρέστε την τιμή umask από την προεπιλεγμένη τιμή.

Για παράδειγμα, για να υπολογίσετε τον τρόπο με τον οποίο το uname 022 θα επηρεάσει πρόσφατα δημιουργημένα αρχεία και καταλόγους, χρησιμοποιήστε:

  • Αρχεία: 666 - 022 = 644 . Ο κάτοχος μπορεί να διαβάσει και να τροποποιήσει τα αρχεία. Ο όμιλος και άλλοι μπορούν να διαβάσουν μόνο τα αρχεία.Directories: 777 - 022 = 755 755. Ο κάτοχος μπορεί να εισέλθει στον κατάλογο και να διαβάσει, να τροποποιήσει, να δημιουργήσει ή να διαγράψει τα αρχεία στον κατάλογο. Ομάδα και άλλοι μπορούν να cd στον κατάλογο και στη λίστα και να διαβάσουν τα αρχεία.

Μπορείτε επίσης να εμφανίσετε την τιμή μάσκας σε συμβολική σημείωση χρησιμοποιώντας την επιλογή -S :

umask -S

u=rwx, g=rx, o=rx

Σε αντίθεση με την αριθμητική σημείωση, η συμβολική τιμή συμβολισμού περιέχει τα bits permission που θα οριστούν στα πρόσφατα δημιουργημένα αρχεία και καταλόγους.

Ρύθμιση της τιμής μάσκας

Η μάσκα δημιουργίας αρχείου μπορεί να οριστεί με οκταδικό ή συμβολικό συμβολισμό. Για να γίνουν οι αλλαγές μόνιμα η νέα τιμή umask σε ένα παγκόσμιο αρχείο διαμόρφωσης όπως το αρχείο /etc/profile που θα επηρεάσει όλους τους χρήστες ή στα αρχεία διαμόρφωσης κελύφους χρήστη όπως ~/.profile , ~/.bashrc ή ~/.zshrc που θα επηρεάσει μόνο τον χρήστη. Τα αρχεία χρήστη έχουν προτεραιότητα έναντι των συνολικών αρχείων.

Πριν κάνετε αλλαγές στην τιμή umask βεβαιωθείτε ότι η νέα τιμή δεν δημιουργεί δυνητικό κίνδυνο ασφαλείας. Οι τιμές λιγότερο περιοριστικές από το 022 θα πρέπει να χρησιμοποιούνται με μεγάλη προσοχή. Για παράδειγμα, το umask 000 σημαίνει ότι οποιοσδήποτε θα έχει διαβάσει, γράψει και εκτελέσει δικαιώματα για όλα τα αρχεία που έχουν δημιουργηθεί πρόσφατα.

Ας υποθέσουμε ότι θέλουμε να ορίσουμε πιο περιοριστικά δικαιώματα για τα πρόσφατα δημιουργημένα αρχεία και καταλόγους, ώστε άλλοι να μην είναι σε θέση να cd στους καταλόγους και να διαβάζουν αρχεία. Τα δικαιώματα που θέλουμε είναι 750 για καταλόγους και 640 για αρχεία.

Για να υπολογίσετε την τιμή umask απλά αφαιρέστε τα επιθυμητά δικαιώματα από την προεπιλεγμένη:

Τιμή Umask: 777-750 = 027

Η επιθυμητή τιμή umask αντιπροσωπεύεται σε αριθμητική σημείωση είναι 027 .

Για να ρυθμίσετε οριστικά τη νέα τιμή σε όλο το σύστημα, ανοίξτε το αρχείο /etc/profile με τον επεξεργαστή κειμένου:

sudo nano /etc/profile

και να αλλάξετε ή να προσθέσετε την ακόλουθη γραμμή στην αρχή του αρχείου:

/ etc / προφίλ

umask 027

Για να εφαρμοστούν οι αλλαγές, εκτελέστε την ακόλουθη εντολή source ή αποσύνδεση και συνδεθείτε:

source /etc/profile

Για να επαληθεύσετε τις νέες ρυθμίσεις, θα δημιουργήσουμε ένα νέο αρχείο και κατάλογο χρησιμοποιώντας mkdir και touch :

mkdir newdir touch newfile mkdir newdir

drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile

Ένας άλλος τρόπος για να ρυθμίσετε τη μάσκα δημιουργίας αρχείων είναι η χρήση της συμβολικής συμβολής. Για παράδειγμα, umask u=rwx, g=rx, o= είναι ίδιο με το umask 027 .

συμπέρασμα

Σε αυτόν τον οδηγό, εξηγήσαμε τα δικαιώματα του Linux και τον τρόπο χρήσης της εντολής umask για να ορίσετε τα bits των αδειών για πρόσφατα δημιουργημένα αρχεία ή καταλόγους.

Για περισσότερες πληροφορίες πληκτρολογήστε man umask στο τερματικό σας.

umask terminal