Android

Kako popisati grupe u Linuxu

Azure Service Fabric Mesh preview | Azure Friday

Azure Service Fabric Mesh preview | Azure Friday

Sadržaj:

Anonim

U Linuxu grupa je skup korisnika. Glavna svrha grupa je definiranje skupa privilegija poput čitanja, pisanja ili izvršavanja dozvole za određeni resurs koji se može podijeliti među korisnicima unutar grupe. Korisnici se mogu dodati postojećoj grupi kako bi iskoristili privilegije koje im daje.

Ovaj vodič objašnjava kako prikazati sve grupe kojima je korisnik član. Objasnit ćemo i kako popisati sve članove grupe.

Linux grupe

Postoje dvije vrste grupa kojima korisnik može pripadati:

  • Primarna ili grupa za prijavu - je ona grupa koja se dodjeljuje datotekama koje kreira korisnik. Obično je ime primarne grupe isto kao i ime korisnika. Svaki korisnik mora pripadati točno jednoj primarnoj skupini.

    Sekundarna ili dopunska skupina - koristi se za dodjelu određenih privilegija nizu korisnika. Korisnik može biti član nula ili više sekundarnih skupina.

Popis svih grupa čiji je korisnik član

Na više je načina saznati skupine kojima korisnik pripada.

Grupa primarnog korisnika pohranjuje se u /etc/passwd datoteku, a dodatne grupe, ako ih ima, navedene su u datoteci /etc/group .

Jedan od načina pronalaženja korisničkih grupa jest popis sadržaja tih datoteka pomoću cat , less ili grep . Druga je lakša opcija upotreba naredbe čija je svrha pružanje informacija o korisnicima i skupinama sustava.

Upotreba naredbe groups

Najopakija naredba za popis svih grupa čiji je korisnik član je naredba groups . Kada se izvrši bez argumenta, naredba će ispisati popis svih grupa kojima trenutno prijavljeni korisnik pripada:

groups

Prva skupina je primarna grupa.

john adm cdrom sudo dip plugdev lpadmin sambashare

Da biste dobili popis svih grupa kojima određeni korisnik pripada, navedite korisničko ime za naredbu groups kao argument:

groups linuxize

Isto kao i prije što je prva skupina primarna grupa.

linuxize: linuxize sudo

Pomoću naredbe id

Naredba id ispisuje podatke o navedenom korisniku i njegovim skupinama. Ako je korisničko ime izostavljeno, prikazuje informacije za trenutnog korisnika.

Na primjer da biste dobili informacije o korisničkoj linuxize koju biste linuxize :

id linuxize

Naredba će pokazati korisničko ime ( uid ), primarnu grupu korisnika ( gid ) i sekundarne grupe ( groups ) korisnika

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

Za ispis samo imena bez ID-a korisnika i grupe koristite opciju -n . Opcija -g ispisuje samo primarnu grupu i -G sve grupe.

Sljedeća naredba ispisat će imena grupa kojima je trenutačni korisnik:

id -nG

john adm cdrom sudo dip plugdev lpadmin sambashare

Popis svih članova grupe

Za popis svih članova grupe upotrijebite naredbu getent group slijedi naziv grupe.

Na primjer, da biste saznali članove grupe s developers imena upotrijebili biste sljedeću naredbu:

getent group developers

Ako grupa postoji, naredba će ispisati grupu i sve njene članove:

developers:x:126:frank, mary

Ako nema rezultata, to znači da grupa ne postoji.

Popis svih grupa

Da biste pogledali sve prisutne grupe u sustavu, jednostavno otvorite /etc/group datoteku. Svaki redak u ovoj datoteci predstavlja informacije za jednu grupu.

less /etc/group

Druga je mogućnost upotreba naredbe getent koja prikazuje unose iz baza podataka konfiguriranih u /etc/nsswitch.conf datoteci, uključujući group bazu podataka koju možemo koristiti za /etc/nsswitch.conf popisa svih grupa.

Da biste dobili popis svih grupa, upišite sljedeću naredbu:

getent group

Izlaz je isti kao kod prikazivanja sadržaja datoteke /etc/group . Ako koristite LDAP za provjeru getent korisnika, getent će prikazati sve grupe iz /etc/group datoteke i LDAP baze podataka.

Možete upotrebljavati i awk ili cut kako biste ispisali samo prvo polje koje sadrži naziv grupe:

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

getent group | cut -d: -f1

Zaključak

U ovom su vodiču naučili kako pronaći grupe kojima je korisnik član. Iste naredbe vrijede za bilo koju distribuciju Linuxa, uključujući Ubuntu, CentOS, RHEL, Debian i Linux Mint.

Slobodno ostavite komentar ako imate bilo kakvih pitanja.

terminal