Linux die in de groep zit. Linux-gebruikersgroepen

UNIX-achtige besturingssystemen zijn multi-user. Gebruikers en de groepen waartoe zij behoren, worden gebruikt om de toegang te controleren systeembestanden, catalogi en randapparatuur. Standaard biedt Linux relatief eenvoudige mechanismen voor toegangscontrole. Je kunt ze uitbreiden met LDAP en ACL's, maar in dit onderwerp zullen we kijken standaard middelen toegangscontrole.

Gebruikers en groepen in Linux

Gebruikers:

Zakelijk – Internettoegang #1.

Gebruiker– dit is iedereen die een computer gebruikt. De gebruiker krijgt een naam toegewezen, de naam moet uniek zijn op het systeem (linux heeft gereserveerde namen, zoals "root", "hal" en "adm"). De naam kan bestaan ​​uit letters van het Engelse alfabet, Arabische cijfers en de symbolen “_” (onderste spatie) «.» (punt).

Wortel(uit het Engels wortel- wortel; lees “root”), een superuser is een account in UNIX-achtige besturingssystemen met een identificatie (UID) 0, de eigenaar van dit account heeft het recht om elke bewerking uit te voeren. Werk om veiligheidsredenen als superuser wortel niet aanbevolen.

Daarnaast systeem naam, kunnen in het systeem worden ingevoerd en opgeslagen volledige naam(bijvoorbeeld volledige naam)(volledige naam) echte gebruiker. Bijvoorbeeld de gebruiker newuser in echte leven zou kunnen overeenkomen met een man genaamd John Smith. Met deze informatie kan de systeembeheerder gebruikers beter controleren en identificeren, vooral als er honderden of zelfs duizenden gebruikers in het systeem zijn.

Voor elke gebruiker wordt een homedirectory aangemaakt. De gebruiker komt in deze directory terecht nadat hij is ingelogd en wordt daarin opgeslagen. persoonlijke bestanden en gebruikersmappen. Alle gebruikersmappen worden op één plaats verzameld, meestal /home.

Ook krijgt de gebruiker een opdrachtshell toegewezen ( commando tolk, gebruikt in besturingssystemen UNIX-familie). Bijvoorbeeld: /bin/bash, /bin/zsh, /bin/sh, enz. Voor velen Linux-distributies, voor gebruikers is de standaardshell bash.

Elke gebruiker wordt toegewezen identificatienummer(Gebruikers-ID). Het nummer wordt afgekort als UID en is een unieke gebruikersidentificatie. Het besturingssysteem volgt de gebruiker op UID, niet op naam.

Bovendien krijgt elke gebruiker een wachtwoord toegewezen om in te loggen op het systeem. Het wachtwoord wordt gecodeerd opgeslagen. Gebruik de opdracht passwd om een ​​wachtwoord aan te maken en te wijzigen. Systeembeheerder kan zelf een wachtwoord toewijzen of de gebruiker toestaan ​​zijn wachtwoord in te voeren bij de eerste keer inloggen.

Elke gebruiker behoort tot ten minste één of meer groepen. (gebruikers en groepen in Linux)

Groepen:

Om de rechten in Linux te differentiëren, zijn er naast gebruikers ook groepen. Net als een gebruiker heeft een groep toegangsrechten tot bepaalde mappen, bestanden en randapparatuur (het systeem heeft gereserveerde groepen). Voor elk bestand wordt niet alleen een gebruiker gedefinieerd, maar ook een groep. Groepen groeperen gebruikers bij elkaar om dezelfde machtigingen te verlenen om iets te doen.

Elke groep krijgt een identificatienummer toegewezen ( groeps-ID). Afgekort als GID, het is een unieke groepsidentificatie. Het groepslidmaatschap van een gebruiker wordt bepaald door de beheerder.

Bekijk gebruikers

(gebruikers en groepen op Linux) Alle bovenstaande informatie wordt opgeslagen in het bestand /etc/passwd. Om de lijst met gebruikers te bekijken, moet u de opdracht invoeren:

# cat /etc/passwd

Elke rekening beslaat één regel. De uitvoer zou als volgt kunnen zijn:

Root:xD928Jhs7sH32:0:0:root:/root:/bin/bash nieuwegebruiker:Xv8Q981g71oKK:1000:100:John Smith:/home/nieuwegebruiker:/bin/bash

Deze regel heeft het volgende formaat:

Account:wachtwoord:UID:GID:GECOS:directory:shell

Rekening - gebruikersnaam wachtwoord - gecodeerd gebruikerswachtwoord UID - gebruikers-ID-nummer GID- het primaire groepsidentificatienummer van de gebruiker GECOS- optioneel veld dat wordt gebruikt om aan te geven aanvullende informatie over de gebruiker (bijvoorbeeld volledige gebruikersnaam) map - thuismap van de gebruiker ($HOME) schelp - gebruikersshell (meestal /bin/sh)

Om een ​​lijst met gebruikers te bekijken die zich inschrijven op dit moment tijd heeft het systeem een ​​who-opdracht.

De conclusie zou als volgt kunnen zijn:

Nieuwe gebruiker pts/0 13-11-2013 14:19 (:0)

Gebruikers aanmaken, beheren en verwijderen

(gebruikers en groepen in linux) Bij het aanmaken van nieuwe gebruikers wordt een reeks van bepaalde acties uitgevoerd. Eerst wordt er een item aangemaakt in het bestand /etc/passwd, waar aan de gebruiker een unieke naam, UID, GID en andere informatie wordt toegewezen. De UID moet groter zijn dan 1000 en de GID moet groter zijn dan 100, dit komt door het feit dat het systeem kleine waarden reserveert voor zijn behoeften. Ook wordt er een map aangemaakt, rechten ingesteld, opdrachtshell-initialisatiebestanden geplaatst en configuratiebestanden gewijzigd.

Om te voorkomen dat u deze informatie handmatig moet invoeren, is er een useradd (of adduser) programma. De instellingen voor dit programma worden opgeslagen in het bestand /etc/default/useradd.

# cat /etc/default/useradd

De conclusie is als volgt:

GROUP=100 HOME=/home INACTIEF=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=nee

Hier kunt u de standaardinstellingen wijzigen. Bijvoorbeeld een map voor gebruikers van /home tot /home/user of een tolk van /bin/bash tot /bin/sh.

Gebruik de opdracht useradd om een ​​nieuwe gebruiker aan te maken:

# useradd -m -g gebruikers -G audio,lp,optisch,opslag,video,wiel,games,power,scanner -s /bin/bash newuser

Uitleg:

# useradd -m -g [hoofdgroep] -G [lijst met aanvullende groepen] -s [shell] [gebruikersnaam]

  • -M- maakt een thuismap aan zoals /home/[gebruikersnaam].
  • -G- naam of nummer van de hoofdgroep van de gebruiker.
  • -G- een lijst met aanvullende groepen waartoe de gebruiker behoort.
  • -S- definieert commandoshell gebruiker.

Voor meer gedetailleerde informatie gebruik de handleiding:

#mangebruikeradd

Met de opdracht chfn kunt u gebruikersaccountinformatie (volledige naam, werktelefoon, werkcoördinaten, enz.) (gebruikersnaam - gebruikersnaam) invoeren of wijzigen.

# chfn [-f volledige naam][-o kantoor][-p werktelefoon][-h thuistelefoon][-u][-v]

Gebruik de opdracht passwd om het wachtwoord in te stellen:

Als we de gebruiker willen dwingen het wachtwoord te veranderen wanneer hij voor de eerste keer inlogt, moeten we de opdracht gebruiken:

# verandering -d 0

# man verandering

Om een ​​gebruiker te verwijderen is er het userdel commando

# userdel-r

De parameter -r geeft aan dat ze samen met de gebruiker moeten worden verwijderd thuismap en een brievenbus.

Groepsbeheer

Om alles te bekijken groepen systemen en hoe gebruiker ze horen, moet u het volgende invoeren:

# kat /etc/group

Het bestand /etc/group definieert de groepen op het systeem. Om te zien in welke groepen de gebruiker zich bevindt, typt u:

# groepen

Het id-commando toont meer gedetailleerde informatie.

#id

Om te creëren nieuwe groep:

#groeptoevoegen

Om een ​​gebruiker aan een groep toe te voegen:

# gpasswd -a

Een gebruiker uit een groep verwijderen:

# gpasswd -d

En om een ​​groep te verwijderen, voert u het volgende in:

#groepdel

(gebruikers en groepen in Linux) Dat is het eigenlijk, de meest fundamentele dingen worden geschetst.

De basis voor de verdeling van toegangsrechten in de operatiekamer Linux-systeem ligt in het concept van de gebruiker. De gebruiker die eigenaar is van het bestand krijgt bepaalde machtigingen om ermee te werken, namelijk lezen, schrijven en uitvoeren. De machtigingen voor lezen, schrijven en uitvoeren worden ook afzonderlijk ingesteld voor alle andere gebruikers. Omdat alles in Linux een bestand is, kunt u met een dergelijk systeem de toegang tot elke actie in dit besturingssysteem regelen door toegangsrechten voor bestanden in te stellen. Maar zelfs met Linux creëren, realiseerden de ontwikkelaars zich dat dit duidelijk niet genoeg was.

Daarom zijn gebruikersgroepen uitgevonden. Gebruikers kunnen zich in groepen verenigen om de groepen de nodige machtigingen te verlenen voor toegang tot bepaalde bestanden en dienovereenkomstig tot acties. In dit artikel zullen we kijken naar gebruikersgroepen in Linux, waarom ze nodig zijn, hoe je een gebruiker aan een groep toevoegt en groepen beheert.

Zoals ik al zei, verschenen groepen in Linux helemaal aan het begin van de ontwikkeling hiervan besturingssysteem. Ze zijn ontworpen om de mogelijkheden voor rechtenbeheer te verbeteren. Laten we naar een klein voorbeeld kijken, laten we een organisatie nemen waarin er maar één computer is, we hebben beheerders en gebruikers. Elke persoon heeft een eigen account op onze computer. Beheerders kunnen het systeem aanpassen, maar het is beter om gebruikers niet de vrije loop te laten, om niet iets kapot te maken. Daarom zijn beheerders verenigd in de beheerdersgroep, en deze krijgt toegang tot alle apparatuur, in feite tot alle bestanden in de dev-directory, en gebruikers zijn verenigd in de gebruikersgroep, en deze groep krijgt de mogelijkheid om te lezen en te schrijven bestanden binnen algemene map, waarmee ze de resultaten van hun werk kunnen delen. We zouden aan elke gebruiker afzonderlijk rechten kunnen toewijzen, waardoor hij toegang krijgt tot een bepaald bestand, maar dit is te lastig. Daarom zijn groepen uitgevonden. U zegt: het is oké, mag ik u benoemen? Stel je nu eens voor dat onze gebruikers processen zijn. Dit is waar de schoonheid van groepen naar voren komt; groepen worden niet zozeer gebruikt om gebruikers toegang te verlenen, maar om programmarechten te beheren, vooral hun toegang tot hardware. Gemaakt voor diensten aparte groepen en de gebruiker namens wie de dienst wordt gelanceerd, kan de dienst lid zijn van verschillende groepen, waardoor hij toegang krijgt tot bepaalde bronnen.

Laten we nu eens kijken hoe we Linux-groepen kunnen bekijken.

Groepen in Linux

Alle groepen die op het systeem zijn gemaakt, bevinden zich in het bestand /etc/group. Door naar de inhoud van dit bestand te kijken, kunt u de lijst met Linux-groepen vinden die al op uw systeem staan. En je zult verrast zijn.

Naast de standaard root en gebruikers zijn er hier nog een paar dozijn groepen. Dit zijn groepen die door programma's zijn gemaakt om de toegang van die programma's te controleren gedeelde bronnen. Elke groep staat lezen of schrijven toe specifiek bestand of systeemmap, waardoor de rechten van de gebruiker worden geregeld, en dus het proces dat door deze gebruiker wordt gestart. Hier kunnen we bedenken dat een gebruiker hetzelfde is als een proces, omdat het proces alle rechten heeft van de gebruiker van waaruit het wordt gestart.

Laten we elk van de groepen eens nader bekijken om beter te begrijpen waarom ze nodig zijn:

  • demon- Services die de mogelijkheid nodig hebben om bestanden naar schijf te schrijven, worden gelanceerd namens deze groep en de daemongebruiker.
  • sys- de groep biedt toegang tot de kernelbronnen en bestanden bevatten opgeslagen in het systeem
  • synchroniseren- hiermee kunt u de opdracht /bin/sync uitvoeren
  • spellen- Hiermee kunnen games hun instellingenbestanden en geschiedenis naar een specifieke map schrijven
  • man- hiermee kunt u pagina's toevoegen aan de map /var/cache/man
  • lp- maakt het gebruik van parallelle poortapparaten mogelijk
  • mail- Hiermee kunt u gegevens naar schrijven brievenbussen/var/mail/
  • volmacht- gebruikt door proxyservers, geen toegang om bestanden naar schijf te schrijven
  • www-gegevens- de webserver begint met deze groep en geeft toegang tot de vermelding /var/www, waar de webdocumentbestanden zich bevinden
  • lijst- hiermee kunt u berichten bekijken in /var/mail
  • geengroep- gebruikt voor processen die geen bestanden op de harde schijf kunnen aanmaken, maar deze alleen kunnen lezen, meestal gebruikt in combinatie met de niemand-gebruiker.
  • adm- hiermee kunt u logboeken lezen uit de map /var/log
  • tty- alle apparaten /dev/vca staan ​​lees- en schrijftoegang toe aan gebruikers uit deze groep
  • schijf- opent toegang tot harde schijven/dev/sd* /dev/hd*, we kunnen zeggen dat dit een analoog is van root-toegang.
  • uitbellen - volledige toegang naar seriële poort
  • cd-rom- toegang tot cd-rom
  • wiel- hiermee kunt u het sudo-hulpprogramma uitvoeren om de bevoegdheden te escaleren
  • geluid- Beheer van audiostuurprogramma's
  • src- volledige toegang tot de bronnen in de map /usr/src/
  • schaduw- maakt het lezen van het bestand /etc/shadow mogelijk
  • utmp- staat schrijven naar bestanden /var/log/utmp /var/log/wtmp toe
  • video- hiermee kunt u met het videostuurprogramma werken
  • plugdev- hiermee kunt u extern monteren USB-apparaten, CD- enz
  • personeel- maakt schrijven naar de map /usr/local mogelijk

Nu je weet waarom je groepen in Linux gebruikt en wat ze standaard zijn, gaan we kijken naar het beheer van Linux-groepen.

Linux-groepsbeheer

U kunt groepen ook beheren via de grafische interface. KDE heeft een programma genaamd Kuser dat speciaal hiervoor is ontworpen, en in Gnome wordt dit gedaan met behulp van de systeeminstellingen. Bovendien hebben populaire distributies dat wel individuele instrumenten zoals YaST in OpenSUSE of Ubuntu-instellingen. Neus grafische interface Ik denk dat je er wel achter komt. En we zullen kijken naar het beheren van Linux-groepen via de terminal. Laten we eerst de bestanden behandelen, en pas daarna de gebruikers.

Wanneer een bestand wordt gemaakt, wordt het toegewezen aan de primaire groep van de gebruiker die het heeft gemaakt. Het is net zo:

Hier kun je zien dat de eigenaar van alle mappen sergiy is en dat de groep ook sergiy is. Klopt, aangezien deze gebruikers door mij zijn gemaakt. Maar laten we verder gaan:

Hier zien we dat schijf apparaten sd* is toegewezen aan de schijfgroep, wat betekent dat een gebruiker die tot deze groep behoort er toegang toe heeft. Of een ander voorbeeld:

Alles is zoals we in de vorige paragraaf hebben besproken. Maar deze groepen kunnen niet alleen door het systeem worden ingesteld, maar u kunt zelf ook handmatig de bestandsgroepen wijzigen, hiervoor is er de opdracht chgrp:

chgrp groepsnaam bestandsnaam

Laten we bijvoorbeeld een bestandstest maken:

En laten we de groep ervoor veranderen:

Als je een Linux-groep wilt maken, kun je dit doen met het newgrp-commando:

sudo groupadd-test

De situatie met gebruikers is iets ingewikkelder. De gebruiker heeft een hoofdgroep, die wordt opgegeven tijdens het maken, evenals verschillende extra groepen. De hoofdgroep verschilt van de gebruikelijke doordat alle bestanden in thuismap gebruikers hebben deze groep, en als deze verandert, zal de groep van deze mappen ook veranderen. Ook ontvangen alle bestanden die door de gebruiker zijn gemaakt deze groep. Er zijn extra groepen nodig zodat we gebruikers toegang kunnen geven tot verschillende bronnen door ze aan deze groepen in Linux toe te voegen.

Het beheren van Linux-groepen voor een gebruiker gebeurt met behulp van de opdracht usermod. Laten we eens kijken naar de syntaxis en opties:

$usermod-opties gebruikersnaam

  • -G- extra groepen waaraan u de gebruiker moet toevoegen
  • -G wijzig de primaire groep voor de gebruiker
  • -R verwijder een gebruiker uit een groep.

Je kunt een gebruiker aan een groep toevoegen met de opdracht usermod:

sudo usermod -G -a groepsnaam gebruikersnaam

Je kunt tijdelijk een gebruiker aan de Linux-groep toevoegen met behulp van de opdracht newgrp. Er wordt een nieuwe shell geopend en daarin heeft de gebruiker de nodige rechten, maar na het sluiten zal alles terugkeren zoals het was:

sudo newgrp groepsnaam

Laten we bijvoorbeeld onze gebruiker aan de schijfgroep toevoegen, zodat we rechtstreeks toegang hebben tot de harde schijven zonder de sudo-opdracht:

sudo usermod -G -a schijf sergiy

Nu kunt u schijven mounten zonder de opdracht sudo:

mount /dev/sda1 /mnt

Je kunt de Linux-groepen waarvan de gebruiker lid is bekijken met het commando:

U kunt ook het id-commando gebruiken. In het eerste geval zien we eenvoudigweg een lijst met Linux-groepen; in het tweede geval worden bovendien de groep en het gebruikers-ID aangegeven. Om een ​​gebruiker aan een Linux-groep toe te voegen, gebruikt u de optie -g voor de primaire groep.