Android

Πώς να ομαδοποιήσετε τις ομάδες στο linux

Harvard CS50 Lecture 7

Harvard CS50 Lecture 7

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

Anonim

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

Αυτό το σεμινάριο εξηγεί πώς να εμφανίζονται όλες οι ομάδες στις οποίες είναι μέλος ο χρήστης. Θα εξηγήσουμε επίσης πώς να απαριθμήσετε όλα τα μέλη μιας ομάδας.

Ομάδες Linux

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

  • Κύρια ομάδα ή ομάδα σύνδεσης - είναι η ομάδα που έχει εκχωρηθεί στα αρχεία που δημιουργούνται από το χρήστη. Συνήθως, το όνομα της κύριας ομάδας είναι το ίδιο με το όνομα του χρήστη. Κάθε χρήστης πρέπει να ανήκει ακριβώς σε μία κύρια ομάδα.

    Δευτερογενής ή συμπληρωματική ομάδα - χρησιμοποιείται για τη χορήγηση ορισμένων προνομίων σε ένα σύνολο χρηστών. Ένας χρήστης μπορεί να είναι μέλος μηδέν ή περισσότερες δευτερεύουσες ομάδες.

Κατάλογος όλων των Ομάδων που είναι μέλος του χρήστη

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

Η ομάδα του πρωτεύοντος χρήστη αποθηκεύεται στο αρχείο /etc/passwd και οι συμπληρωματικές ομάδες, αν υπάρχουν, εμφανίζονται στο αρχείο /etc/group .

Ένας τρόπος να βρείτε τις ομάδες χρηστών είναι να καταγράψετε τα περιεχόμενα αυτών των αρχείων χρησιμοποιώντας τη cat , less ή grep . Μια άλλη πιο εύκολη επιλογή είναι να χρησιμοποιήσετε μια εντολή, σκοπός της οποίας είναι η παροχή πληροφοριών σχετικά με τους χρήστες και τις ομάδες του συστήματος.

Χρησιμοποιώντας την εντολή groups

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

groups

Η πρώτη ομάδα είναι η κύρια ομάδα.

john adm cdrom sudo dip plugdev lpadmin sambashare

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

groups linuxize

Όπως και πριν η πρώτη ομάδα είναι η κύρια ομάδα.

linuxize: linuxize sudo

Χρησιμοποιώντας την εντολή id

Η εντολή id εκτυπώνει πληροφορίες σχετικά με τον συγκεκριμένο χρήστη και τις ομάδες του. Εάν το όνομα χρήστη παραλείπεται, εμφανίζει πληροφορίες για τον τρέχοντα χρήστη.

Για παράδειγμα, για να λάβετε πληροφορίες σχετικά με το χρήστη linuxize θα πληκτρολογήσετε:

id linuxize

Η εντολή θα εμφανίσει το όνομα χρήστη ( uid ), την κύρια ομάδα του χρήστη ( gid ) και τις δευτερεύουσες ομάδες ( groups ) του χρήστη,

uid=1001(linuxize) gid=1001(linuxize) groups=1001(linuxize), 27(sudo)

Για να εκτυπώσετε μόνο τα ονόματα χωρίς το αναγνωριστικό χρήστη και ομάδας χρησιμοποιήστε την επιλογή -n . Η επιλογή -g θα εκτυπώσει μόνο την κύρια ομάδα και όλες τις ομάδες -G .

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

id -nG

john adm cdrom sudo dip plugdev lpadmin sambashare

Κατάλογος όλων των μελών μιας ομάδας

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

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

getent group developers

Εάν υπάρχει η ομάδα, η εντολή θα εκτυπώσει την ομάδα και όλα τα μέλη της:

developers:x:126:frank, mary

Εάν δεν υπάρχει έξοδος που σημαίνει ότι η ομάδα δεν υπάρχει.

Λίστα όλων των ομάδων

Για να δείτε όλες τις ομάδες που υπάρχουν στο σύστημα απλά ανοίξτε το αρχείο /etc/group . Κάθε γραμμή σε αυτό το αρχείο αντιπροσωπεύει πληροφορίες για μια ομάδα.

less /etc/group

Μια άλλη επιλογή είναι να χρησιμοποιήσετε τη getent εντολή που εμφανίζει καταχωρήσεις από βάσεις δεδομένων που έχουν ρυθμιστεί στο αρχείο /etc/nsswitch.conf , συμπεριλαμβανομένης της group βάσεων δεδομένων που μπορούμε να χρησιμοποιήσουμε για την αναζήτηση μιας λίστας όλων των ομάδων.

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

getent group

Η έξοδος είναι ίδια με την εμφάνιση του περιεχομένου του αρχείου /etc/group . Εάν χρησιμοποιείτε το LDAP για τον έλεγχο ταυτότητας χρήστη, ο getent θα εμφανίζει όλες τις ομάδες από το αρχείο /etc/group και από τη βάση δεδομένων LDAP.

Μπορείτε επίσης να χρησιμοποιήσετε awk ή cut για να εκτυπώσετε μόνο το πρώτο πεδίο που περιέχει το όνομα της ομάδας:

getent group | awk -F: '{ print $1}'

getent group | cut -d: -f1

συμπέρασμα

Σε αυτό το σεμινάριο μάθατε πώς μπορείτε να βρείτε τις ομάδες στις οποίες είναι μέλος ο χρήστης. Οι ίδιες εντολές ισχύουν για οποιαδήποτε διανομή Linux, συμπεριλαμβανομένων των Ubuntu, CentOS, RHEL, Debian και Linux Mint.

Μη διστάσετε να αφήσετε ένα σχόλιο εάν έχετε οποιεσδήποτε ερωτήσεις.

τερματικό