Κοινή χρήση τεχνολογίας

Σε βάθος ανάλυση των δικαιωμάτων Linux - αρχές εξερεύνησης

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Πρόλογος: Αυτή η ενότητα μιλάει κυρίως για το περιεχόμενο που σχετίζεται με τα δικαιώματα Linux δεν μπορούν να γίνουν αισθητά εάν χρησιμοποιείτε τον λογαριασμό root, επομένως πρέπει να χρησιμοποιήσουμε συνηθισμένους λογαριασμούς για να μάθουμε τα σχετικά περιεχόμενα αυτής της ενότητας και να πραγματοποιήσουμε κάποιες πειραματικές δοκιμές. Στη συνέχεια, μέσω της μελέτης των αδειών Linux, μπορούμε να γνωρίζουμε γιατί μερικές φορές έχουμε πάντα άδεια όταν χειριζόμαστε ένα αρχείο και να γνωρίζουμε τη διαφορά μεταξύ των δικαιωμάτων αρχείων στον ριζικό κατάλογο και των δικαιωμάτων αρχείων στον αρχικό κατάλογο του συνηθισμένου χρήστη.

ps: Αυτή η ενότητα είναι κατάλληλη για φίλους που μαθαίνουν Linux και γνωρίζουν κάποιες εντολές Linux.

Ταξινόμηση χρηστών

//Πρώτα, ας γνωρίσουμε την ταξινόμηση των χρηστών στο Linux:

  • ρίζα:σούπερ χρήστης, διαχειριστής
  • γενικός χρήστης: Δηλαδή κάποιους χρήστες που δημιουργήσαμε. (Απλοί χρήστες από το addusr)

Η θεμελιώδης διαφορά μεταξύ αυτών των δύο χρηστών είναι ότι ο χρήστης root δεν περιορίζεται από δικαιώματα, ενώ οι απλοί χρήστες περιορίζονται από δικαιώματα.

//su

Οι απλοί χρήστες μπορούν να μεταβούν σε χρήστες root και οι χρήστες root μπορούν επίσης να μεταβούν σε απλούς χρήστες.

Μετάβαση από απλό χρήστη σε χρήστη root:

Το πρώτο - su + κωδικός πρόσβασης root. Μπορείτε να μεταβείτε για να γίνετε ο χρήστης root. Εάν αλλάξετε αυτήν τη στιγμή, η θέση του χρήστη θα παραμείνει αμετάβλητη μετά την αλλαγή.

Ο δεύτερος τύπος - su- + κωδικός πρόσβασης root. Επίσης, μεταβείτε σε χρήστη root. Εάν κάνετε εναλλαγή αυτήν τη στιγμή, η τοποθεσία του χρήστη μετά τον διακόπτη θα γίνει ο αρχικός κατάλογος του root.

Μετά την εναλλαγή στις παραπάνω δύο καταστάσεις, μπορείτε να χρησιμοποιήσετε το cral + d για να επιστρέψετε.

Αλλαγή του χρήστη root σε έναν κανονικό χρήστη - Η αλλαγή του χρήστη root σε έναν κανονικό χρήστη δεν απαιτεί κωδικό πρόσβασης και μπορεί να αλλάξει απευθείας.

Ο απλός χρήστης αλλάζει σε απλό χρήστη

Υπάρχουν γενικά δύο τρόποι για τους απλούς χρήστες να μεταβούν σε απλούς χρήστες:

Το πρώτο - εάν έχετε τον κωδικό πρόσβασης του απλού χρήστη, μπορείτε να χρησιμοποιήσετε τον κωδικό πρόσβασης su + χρήστη + χρήστη για να αλλάξετε ταυτότητες.

Ο δεύτερος τύπος - πρώτα εναλλαγή στον χρήστη root (ανατρέξτε στη μέθοδο εναλλαγής παραπάνω) και, στη συνέχεια, μεταβείτε απευθείας στον καθορισμένο χρήστη μέσω της ταυτότητας ρίζας.

Σημειώστε ότι μπορείτε να χρησιμοποιήσετε το cral + d για να επιστρέψετε στην εναλλαγή ταυτότητας συνειδητότητας.

Κλιμάκωση προνομίων εντολών : Όταν εκτελούμε την εντολή, δεν μπορούμε να μεταβούμε στον χρήστη root, αλλά μόνο να κλιμακώσουμε τα δικαιώματα μιας από τις εντολές Αυτή τη στιγμή, χρησιμοποιούμε sudu + command + τον κωδικό πρόσβασης του τρέχοντος χρήστη. Οι φίλοι μπορεί να έχουν ερωτήσεις εδώ, γιατί πρέπει να εισαγάγετε τον δικό σας κωδικό πρόσβασης για να κλιμακώσετε τα δικαιώματα μιας συγκεκριμένης εντολής, αντί για τον κωδικό πρόσβασης root; Αυτό συμβαίνει επειδή αυτή η κλιμάκωση δικαιωμάτων εντολής είναι υπό όρους, δηλαδή, μόνο όταν ένας χρήστης προστεθεί στη λίστα επιτρεπόμενων του συστήματος μπορεί να πραγματοποιηθεί η κλιμάκωση δικαιωμάτων εντολής. Εάν δεν προστεθεί στη λίστα επιτρεπόμενων, η εντολή κλιμάκωσης προνομίων είναι άχρηστη.

Τι είναι άδεια

Στη δημοτική γλώσσα, τα δικαιώματα αναφέρονται στο αν επιτρέπεται να κάνετε κάτι.

Η ταυτότητα ενός χρήστη χωρίζεται σε: κάτοχο, ομάδα και άλλα.

Ας δούμε την ακόλουθη σειρά γραμμών εντολών:

Εδώ, το πρώτο _mian_yang αντιπροσωπεύει αρχικά τον κάτοχο του αρχείου και το δεύτερο _mian_yang αντιπροσωπεύει την ομάδα στην οποία ανήκει το αρχείο. Δηλαδή, ο κάτοχος αυτών των αρχείων είναι _mian_yang, και _mian_yang είναι η ταυτότητα του κατόχου στην οποία ανήκουν αυτά τα αρχεία είναι _mian_yang, τότε είναι η ταυτότητα της ομάδας στην οποία ανήκει και αν ένας χρήστης είναι και οι δύο Δεν είναι _mian_yang, ούτε είναι στην ομάδα που ανήκει. Τότε αυτός ο χρήστης είναι η ταυτότητα κάποιου άλλου.

Έτσι, εάν υπάρχει ένας διευθυντής που ονομάζεται Zhang San, ο Zhang San θέλει να πάει στο γραφείο του διευθυντή του. Θα ήθελα λοιπόν να ρωτήσω, μπορεί ο Zhang San να πάει στο γραφείο του διευθυντή επειδή είναι ο Zhang San ή επειδή είναι ο διευθυντής. Ο προφανής λόγος εδώ είναι ότι επειδή είναι ο εντολέας, μπορεί να πάει στο γραφείο του ίδιου του διευθυντή. Έτσι, για τα αρχεία μας, μπορούμε να έχουμε πρόσβαση σε αυτό το αρχείο επειδή είμαστε αυτός ο χρήστης; Ή μήπως οφείλεται στην ταυτότητα χρήστη μας; Η απάντηση είναι ταυτότητα. Δηλαδή, ο έλεγχος ταυτότητας της αρχής είναι η ταυτότητα.

Δεύτερη ερώτηση, όλοι γνωρίζουμε ότι τα κινητά τηλέφωνα έχουν πολλές λειτουργίες Μπορούμε να παρακολουθήσουμε βίντεο, να ελέγξουμε πληροφορίες, να παίξουμε παιχνίδια και ούτω καθεξής. Αυτά μπορούν να θεωρηθούν ως χαρακτηριστικά που διαθέτουν τα κινητά τηλέφωνα. Ωστόσο, όταν πεινάμε, δεν μπορούμε να φάμε τα τηλέφωνά μας για να μην πεινάμε πια. Το να μπορείς να χρησιμοποιηθεί ως φαγητό είναι ένα χαρακτηριστικό που δεν έχουν τα κινητά τηλέφωνα. Έτσι, ό,τι και να κάνουμε, ακόμη και οι άνθρωποι με την υψηλότερη εξουσία δεν μπορούν να επιτρέψουν στα κινητά τηλέφωνα να γίνουν τροφή, έτσι. Μπορούμε να γνωρίζουμε το δεύτερο σημείο, ότι δηλαδή τα δικαιώματα σχετίζονται και με τις ιδιότητες των πραγμάτων.

//Η σχέση ταυτότητας και χρήστη

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

Πρώτα απ 'όλα, για έναν συνηθισμένο χρήστη, αυτός ο συνηθισμένος χρήστης μπορεί να είναι ο κάτοχος ενός αρχείου, η ομάδα στην οποία ανήκει ένα αρχείο ή άλλα άτομα.

Για τον χρήστη root, ο χρήστης root μπορεί να είναι ο κάτοχος ενός αρχείου, η ομάδα στην οποία ανήκει ένα αρχείο ή άλλα άτομα.

Λοιπόν, πώς εκδηλώνεται; Δηλαδή, πώς καθορίζει το Linux την ταυτότητα αυτού του χρήστη; Ας δούμε αυτή την εικόνα:

Για πράσινα και πορτοκαλί κουτιά, το πράσινο κουτί είναι ο ιδιοκτήτης και το πορτοκαλί κουτί είναι η ομάδα στην οποία ανήκει. Έτσι, όταν οποιοσδήποτε συνδεδεμένος χρήστης έχει πρόσβαση σε ένα αρχείο, πρέπει πρώτα να ελέγξει αν είναι ο κάτοχος του αρχείου. Εάν όχι, πρέπει να ελέγξει αν είναι η ομάδα στην οποία ανήκει το αρχείο. Αν όχι, τότε κάποιος άλλος.

//Δικαιώματα αρχείου

Συνεχίστε να βλέπετε αυτήν την εικόνα Για αυτήν την εικόνα, τα ροζ κουτιά μέσα είναι τα δικαιώματα κάθε ταυτότητας. Οι πράσινες οριζόντιες γραμμές είναι δικαιώματα κατόχου, οι πορτοκαλί οριζόντιες γραμμές είναι δικαιώματα ομάδας και οι μπλε οριζόντιες γραμμές είναι δικαιώματα άλλων ατόμων. Μεταξύ αυτών, κάθε ταυτότητα έχει τρία δικαιώματα rwx Αυτά τα τρία δικαιώματα είναι μια ομάδα και οι θέσεις αυτών των τριών αδειών καθορίζονται. Η πρώτη θέση είναι για ανάγνωση, η δεύτερη θέση είναι για τη γραφή και η τρίτη θέση είναι για εκτελέσιμη. Και κάθε τοποθεσία έχει μόνο ναι ή όχι, έχει τα καθορισμένα δικαιώματα.

Σκεφτείτε το εδώ, γιατί χρειάζεστε την άδεια για να ανήκετε σε μια ομάδα;

Ας υποθέσουμε ότι τόσο ο Ζανγκ Σαν όσο και ο Λι Σι μπήκαν σε μια εταιρεία για συνεντεύξεις και τελικά έγιναν ασκούμενοι της ίδιας εταιρείας και στη συνέχεια τοποθετήθηκαν στην Ομάδα Α και στην Ομάδα Β αντίστοιχα. Επιπλέον, ο Zhang San είναι στην Ομάδα Α και ο Li Si στην Ομάδα Β. Τώρα η εταιρεία επιτρέπει σε αυτές τις δύο ομάδες να αναπτύξουν ένα λογισμικό ταυτόχρονα. Μια μέρα ο Ζανγκ Σαν έγραψε ένα σωρό πολύ ισχυρούς κωδικούς, ο Λι Σι ήθελε να ρίξει μια ματιά, αλλά ο Ζανγκ Σαν δεν ήθελε να τον δει. Ωστόσο, μια μέρα ο αρχηγός θέλει να ρίξει μια ματιά στον κώδικα που έγραψε ο Zhang San Ωστόσο, εάν ο Zhang San απελευθερώσει την άδεια ανάγνωσης του κώδικα, τότε ο Li Si μπορεί να τον δει, οπότε η ομάδα στην οποία ανήκει παίζει ρόλο σε αυτό. χρόνος. Αφήστε αυτόν τον αρχηγό να ανήκει σε αυτήν την ομάδα, για να μπορώ να δω αυτό το πρόγραμμα, όπως και ο αρχηγός, αλλά άλλοι δεν μπορούν.

Τροποποίηση αδειών

Υπάρχουν μόνο δύο άτομα που μπορούν να τροποποιήσουν τα δικαιώματα, το ένα είναι ο κάτοχος και το άλλο είναι το root.

Μέθοδος: το chmod u + rwx τροποποιεί τα δικαιώματα που άλλαξε ο κάτοχος και προσθέτει δικαιώματα στον κάτοχο (r άδεια ανάγνωσης, w άδεια εγγραφής, x άδεια εκτέλεσης)

Το chmod u-rwx τροποποιεί τα δικαιώματα του κατόχου και αφαιρεί τα αντίστοιχα δικαιώματα από τον ιδιοκτήτη

Το chmod g+rwx τροποποιεί τα δικαιώματα της ομάδας στην οποία ανήκει και προσθέτει δικαιώματα στην ομάδα στην οποία ανήκει.

Το chmod g-rwx τροποποιεί τα δικαιώματα της ομάδας στην οποία ανήκει και προσθέτει δικαιώματα στην ομάδα στην οποία ανήκει.

chmod g-rwx για να τροποποιήσετε τα δικαιώματα άλλων ατόμων και να προσθέσετε δικαιώματα σε άλλους

chmod g-rwx για να τροποποιήσετε τα δικαιώματα άλλων ατόμων και να προσθέσετε δικαιώματα σε άλλους

Μπορείτε επίσης να κάνετε chmod u+rwx και g+rwx για να δώσετε δικαιώματα σε πολλαπλές ταυτότητες. Αυτό σημαίνει ότι προσθέτετε δικαιώματα στην ομάδα και τον ιδιοκτήτη στην οποία ανήκουν και η αφαίρεση των δικαιωμάτων είναι το αντίθετο.

Για παράδειγμα, αν θέλετε να προσθέσετε δικαιώματα σε όλες τις ταυτότητες ταυτόχρονα, θα chmod a+rwx, και το αντίθετο ισχύει για την αφαίρεση των δικαιωμάτων.

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

Αλλαγή κατόχου αρχείου: επιλέξτε το αρχείο χρήστη για να δώσετε τα δικά σας αρχεία σε κάποιον και αλλάξτε τον κάτοχο.

Αλλαγή της ομάδας στην οποία ανήκει ένα αρχείο: chgrp Αλλαγή της ομάδας στην οποία ανήκει ένα αρχείο χρήστη.

Οι παραπάνω δύο οδηγίες απαιτούν τη συγκατάθεση του αντίστοιχου χρήστη. Υπάρχουν γενικά δύο μέθοδοι: η μία είναι η κλιμάκωση των δικαιωμάτων, su, και η άλλη είναι η επικοινωνία εκτός σύνδεσης.

Όσον αφορά τα δικαιώματα, τα δικαιώματα κάθε τοποθεσίας που βλέπουμε χρησιμοποιώντας το ll καθορίζονται, επομένως μπορούμε να χρησιμοποιήσουμε το 1 για να αντιπροσωπεύσουμε ότι η τοποθεσία έχει δικαιώματα και το 0 για να αντιπροσωπεύσουμε ότι η τοποθεσία δεν έχει δικαιώματα. Μπορούμε λοιπόν να χρησιμοποιήσουμε τα 111 και 110 για να αναπαραστήσουμε τα δικαιώματα μιας ταυτότητας. Για παράδειγμα, το 111 σημαίνει ανάγνωση, εγγραφή και εκτέλεση. Το 111 είναι 7, επομένως τρεις ταυτότητες μπορούν να αναπαρασταθούν με τρία οκταδικά ψηφία, όπως το 777.

Επομένως, μπορούμε να τροποποιήσουμε τα δικαιώματα όπως αυτό - chmod 777, που σημαίνει ότι δίνουμε σε όλες τις ταυτότητες όλα τα δικαιώματα.

Τώρα, ας δούμε ένα παράδειγμα:

Τώρα, για τον χρήστη _mian_yang, η κατάσταση του κατόχου του έχει δικαιώματα ανάγνωσης, αλλά δεν έχει δικαιώματα εγγραφής η ταυτότητα της ομάδας του έχει δικαιώματα ανάγνωσης και εγγραφής.

Αυτή τη στιγμή, λοιπόν, μπορεί ο _mian_yang να γράψει σε αυτό το αρχείο;

Η απάντηση είναι όχι, γιατί όταν ένας χρήστης επαληθεύει την ταυτότητά του, μπορεί να επαληθεύσει μόνο μία ταυτότητα Πρώτα επαληθεύει την ταυτότητα του ιδιοκτήτη, μετά επαληθεύει την ταυτότητα της ομάδας στην οποία ανήκει και, τέλος, επαληθεύει την ταυτότητα άλλων.

umask

Γιατί τα δικαιώματα φαίνονται έτσι όταν δημιουργούμε ένα αρχείο;

Πρώτα απ 'όλα, αυτό που πρέπει να γνωρίζουμε είναι ότι τα δικαιώματα στην εικόνα είναι τα τελικά δικαιώματα που δημιουργούνται από το αρχείο, στην πραγματικότητα έχουν επίσης ένα δικαίωμα εκκίνησης - η προεπιλεγμένη άδεια εκκίνησης για τα αρχεία καταλόγου είναι 777 και η προεπιλογή για τα συνηθισμένα αρχεία είναι. 666. Αλλά γιατί τα δικαιώματα που δημιουργήθηκαν τελικά είναι 775 για αρχεία καταλόγου και 664 για συνηθισμένα αρχεία;

Αυτό συμβαίνει επειδή υπάρχει μια umask στο σύστημα από προεπιλογή - μάσκα άδειας. Η μάσκα άδειας σημαίνει ότι οποιοδήποτε δικαίωμα εμφανίζεται στο umask δεν θα εμφανίζεται στην τελική άδεια Ο κανόνας υπολογισμού εδώ δεν είναι η προεπιλεγμένη άδεια - μάσκα άδειας, αλλά η τελική άδεια = προεπιλεγμένη άδεια & (~ permission mask)

Ταυτόχρονα, το umask μπορεί επίσης να τροποποιηθεί, όπως ο αριθμός umask, που είναι η τροποποίηση της μάσκας άδειας σε έναν συγκεκριμένο αριθμό.

Η έννοια της ανάγνωσης και εγγραφής καταλόγου

Ανάγνωση καταλόγου: μας επιτρέπει να προβάλλουμε τα περιεχόμενα των αρχείων στον τρέχοντα κατάλογο

Εγγραφή καταλόγου: μας επιτρέπει να δημιουργήσουμε, να διαγράψουμε και να αλλάξουμε αρχεία

Εκτελέσιμος κατάλογος: εάν επιτρέπεται να εισέλθουμε στον κατάλογο.

κολλώδες κομμάτι

Στην πράξη, μπορεί να έχουμε αυτήν την απαίτηση: θέλουμε να μοιραζόμαστε δεδομένα, αλλά αν δημιουργήσουμε τον κατάλογο στον αρχικό μας κατάλογο, οι άλλοι χρήστες δεν μπορούν να εισέλθουν. Επομένως, αυτός ο κατάλογος μπορεί να δημιουργηθεί μόνο κάτω από τον ριζικό κατάλογο, αλλά τα προεπιλεγμένα δικαιώματα του ριζικού καταλόγου είναι dr-xr-xr-x, που σημαίνει ότι οι τρεις ταυτότητες μπορούν μόνο να διαβάσουν και να εκτελέσουν και δεν μπορούν να δημιουργήσουν καταλόγους κατά βούληση. Επομένως, πρέπει να χρησιμοποιήσετε τον λογαριασμό root για να δημιουργήσετε τον κατάλογο.

Μετά τη δημιουργία αυτού του αρχείου, μπορούμε να ορίσουμε την άλλη ταυτότητα για ανάγνωση, εγγραφή και εκτέλεση αυτού του αρχείου, διαφορετικά δεν μπορεί να γίνει κοινή χρήση του. Αλλά εάν ένας χρήστης δημιουργήσει ένα αρχείο σε αυτό, επειδή ο κατάλογος έχει άδεια εγγραφής, άλλοι μπορούν να διαγράψουν το αρχείο κατά βούληση. Έτσι, για να προστατεύσουμε αυτό το αρχείο αυτή τη στιγμή, προστέθηκε η λειτουργία sticky bit. Η λειτουργία αυτού του sticky bit διασφαλίζει ότι τα αρχεία που δημιουργούνται από τον χρήστη μπορούν να διαγραφούν μόνο από τον ίδιο τον χρήστη ή το root.

Επομένως, το sticky bit είναι ένα δικαίωμα που έχει οριστεί ειδικά για έναν κατάλογο, συνήθως έναν κοινόχρηστο κατάλογο. μπορώ.

------------------

Αυτά είναι όλα για αυτήν την ενότητα.

Εδώ είναι οι σημειώσεις μου: