Hoe een gebruiker uit een Ubuntu-groep te verwijderen. Linux-gebruikersgroepen

De basis voor de verdeling van toegangsrechten in het Linux-besturingssysteem 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 bij het maken van Linux beseften de ontwikkelaars dat dit duidelijk niet genoeg was.

Daarom zijn gebruikersgroepen uitgevonden. Gebruikers kunnen zich in groepen verenigen om groepen de nodige machtigingen te geven 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 van dit 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 naar een gemeenschappelijke map, met behulp waarvan ze de resultaten van uw 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. Voor services worden aparte groepen gemaakt en de gebruiker namens wie een service wordt gelanceerd, kan lid zijn van meerdere groepen, waardoor deze 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 tot gedeelde bronnen te controleren. Elke groep maakt het lezen of schrijven van een specifiek bestand of map op het systeem mogelijk, waardoor de rechten van de gebruiker worden geregeld, en dus het proces dat als die gebruiker wordt uitgevoerd. 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 kernelbronnen en bevat bestanden die in het systeem zijn opgeslagen
  • 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 schrijven naar mailboxen /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 het item /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 maken, 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 /dev/vca-apparaten 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 tot de 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 externe apparaten USB, CD, etc. monteren
  • 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 aparte tools, zoals YaST in OpenSUSE of Ubuntu-instellingen. Maar ik denk dat je er wel uit zult komen met de grafische interface. 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 de sd*-schijfapparaten zijn toegewezen aan de schijfgroep, wat allemaal 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, dit is het commando 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 gespecificeerd tijdens het maken, evenals verschillende extra groepen. De hoofdgroep verschilt van de gebruikelijke doordat alle bestanden in de thuismap van de gebruiker deze groep hebben, en wanneer deze wordt gewijzigd, 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.

Laten we de gebruiker vivek aanmaken en hem toevoegen aan de ontwikkelaarsgroep. Inloggen als rootgebruiker:

Laten we bijvoorbeeld een gebruiker toevoegen levend:

useradd-g gebruikers -G beheerders,ftp,www,ontwikkelaars -S/bin/bash -Pxxx-D/home/geest -m levend

  • -D thuismap
  • -S stel de startshell in (/bin/sh) - u kunt deze vervolgens in het bestand wijzigen /etc/passwd
  • -P wachtwoord
  • -G primaire groep waaraan de gebruiker is toegewezen (de groep moet bestaan)
  • -G andere groepen waaraan de gebruiker is toegewezen
  • -M maak een thuismap voor de gebruiker
  • xxxx karakter gebruikerswachtwoord

Laten we ervoor zorgen dat de ontwikkelaarsgroep bestaat:

# grep ontwikkelaars /etc/group

Als er geen groep is, gebruikt u de opdracht groepstoevoeging om een ​​nieuwe ontwikkelaarsgroep te maken:

Gebruik nu het commando gebruikersmod voeg de gebruiker vivek toe aan de ontwikkelaarsgroep:

# adduser vivek ontwikkelaars && newgrp ontwikkelaars

Laten we ervoor zorgen dat de gebruiker wordt toegevoegd aan de ontwikkelaarsgroep:

#id vivek
Uitgang:
uid=1122(vivek) gid=1125(vivek) groups=1125(vivek),1124(ontwikkelaars)

Stel het wachtwoord voor de vivek-gebruiker in/wijzig:

Laten we met groepen spelen

Laten we de gebruiker vivek vertellen om alleen deel te nemen aan de ontwikkelaarsgroep

gebruikersmod-G-ontwikkelaars vivek

Laten we de gebruiker vivek vertellen om alleen deel te nemen aan de admins, ftp, www, ontwikkelaarsgroepen door het volgende in te voeren:

# usermod -G admins,ftp,www,ontwikkelaars vivek

Laten we de gebruiker vivek uit sommige groepen verwijderen (de groepen opnieuw aan hem toewijzen):

# usermod -G ftp,www vivek

nu is vivek niet opgenomen in de beheerders- en ontwikkelaarsgroepen.

Opmerking: team gebruikersmod zal de gebruikersnaam niet wijzigen als die gebruiker momenteel is ingelogd op het systeem.

gebruikerdel- Verwijder gebruiker

Verwijder bijvoorbeeld de gebruiker vivek:

  • -R verwijder de gebruiker samen met de thuismap

Gedetailleerde SYNTAXIS

useradd [-u identificatie[-o] [-i]] [-g groep] [-G groep[[,groep] . . .]] [-D catalogus] [-S schelp] [-C een reactie] [-m [-k skel_dir]] [-F inactief] [-e verlopen] [-P passagiers] [-A evenement[, . . .]] reg_naam

Gedetailleerde beschrijving

Telefoongesprek gebruikeradd voegt meestal een nieuwe gebruikersinvoer toe aan de systeemgegevensbestanden identificatie en identiteitsverificatie(Identificatie en Authenticatie - I&A). De uitzondering zijn gebruikers netwerkinformatiedienst(Network Information Service of kortweg NIS). Hiermee kunt u ook het lidmaatschap van extra groepen voor de gebruiker opgeven (optie -G) en maak er een startmap voor (option -M). De nieuwe login wordt geblokkeerd totdat de opdracht wordt uitgevoerd wachtwoord.

Direct na installatie worden in het bestand de standaardwaarden voor verschillende parameters aangegeven /etc/default/useradd. De standaardwaarden voor de onderstaande opties die standaardwaarden vereisen, kunnen worden gewijzigd met behulp van de opdracht defadm.

Systeembestandsitems die met deze opdracht zijn gemaakt, hebben een maximale lengte van 512 tekens per regel. Als er lange argumenten worden gegeven voor meerdere opties, kan deze beperking worden geschonden.

De volgende opties worden ondersteund:

-u-identificatie Gebruikersidentificatienummer (UID). Dit getal moet een niet-negatief geheel getal zijn dat niet groter is dan MAXUID, gedefinieerd in sys/param.h. De standaardwaarde is de volgende beschikbare (unieke) niet-verouderde UID groter dan 99. Deze optie wordt genegeerd als de nieuwe login wordt beheerd door Network Information Service (NIS). Zie het gedeelte 'Registratienamen voor netwerkinformatieservices' hieronder voor meer informatie hierover.
-O Met deze optie kunt u de UID dupliceren (niet-uniek maken). Omdat de bescherming van het systeem als geheel, evenals de integriteit audittraject(audittraject) en boekhoudkundige informatie(boekhoudinformatie) is met name afhankelijk van de unieke correspondentie van elke UID met een specifieke persoon. Het gebruik van deze optie wordt niet aanbevolen (om ervoor te zorgen dat gebruikersacties worden verantwoord).
-i Maakt het gebruik van een verouderde UID mogelijk.
-g groep De integer-ID of symbolische naam van een bestaande groep. Deze optie specificeert kerngroep(primaire groep) voor een nieuwe gebruiker. Standaard wordt de standaardgroep gebruikt die in het bestand is opgegeven /etc/default/useradd
-G groep[[,groep] . . .] Een of meer elementen in een door komma's gescheiden lijst, die elk een geheel getal of een symbolische naam van een bestaande groep vertegenwoordigen. Deze lijst definieert lidmaatschap van extra groepen(aanvullend groepslidmaatschap) voor de gebruiker. Herhalingen worden genegeerd. Het aantal elementen in de lijst mag niet groter zijn dan NGROUPS_MAX-1, aangezien het totale aantal extra groepen voor een gebruiker plus de hoofdgroep niet groter mag zijn NGROUPS_MAX. Deze optie wordt genegeerd als de nieuwe login wordt beheerd door Network Information Service (NIS). Zie "Netwerkinformatieserviceregistratienamen" hieronder.
-d map Startmap(thuismap) van de nieuwe gebruiker. De lengte van dit veld mag niet langer zijn dan 256 tekens. Standaard is HOMEDIR/reg_naam, Waar HOMEDIR- de basismap voor de initiële mappen van nieuwe gebruikers, en reg_naam- registratienaam van de nieuwe gebruiker.
-s schaal Het volledige pad naar het programma dat onmiddellijk na registratie als initiële shell voor de gebruiker wordt gebruikt. De lengte van dit veld mag niet langer zijn dan 256 tekens. Standaard is dit veld leeg, waardoor het systeem de standaard commando-interpreter moet gebruiken /usr/bin/sh. Als waarde schelp er moet een bestaand uitvoerbaar bestand worden opgegeven.
-c commentaar Elke tekstreeks. Meestal is dit een korte beschrijving van de inlognaam en wordt deze nu gebruikt om de achternaam en voornaam van de echte gebruiker aan te geven. Deze informatie wordt in het gebruikersrecord in een bestand opgeslagen /etc/passwd. De lengte van dit veld mag niet langer zijn dan 128 tekens.
-M Creëert de homedirectory van een nieuwe gebruiker als deze nog niet bestaat. Als de map al bestaat, moet de gebruiker die wordt toegevoegd toestemming hebben om toegang te krijgen tot de opgegeven map.
-k skel_dir Kopieert de inhoud van een map skel_dir naar de homedirectory van de nieuwe gebruiker, in plaats van de inhoud van de standaard "skelet" -directory, /etc/skel. Catalogus skel_dir moet bestaan. De standaardmap "skelet" bevat standaardbestanden die de werkomgeving van de gebruiker definiëren. Door de beheerder opgegeven directory skel_dir kan soortgelijke bestanden en mappen bevatten die voor een specifiek doel zijn gemaakt.
-f inactief Het maximaal toegestane aantal dagen tussen het gebruik van een registratienaam voordat de naam al ongeldig is verklaard. Meestal zijn de waarden positieve gehele getallen.
-e verlopen De datum vanaf wanneer de registratienaam niet meer gebruikt mag worden; na deze datum heeft geen enkele gebruiker meer toegang met deze login. (Deze optie is handig bij het maken van tijdelijke logins.) Voer een argumentwaarde in verlopen(die een datum vertegenwoordigt) kan elk formaat hebben (behalve Juliaanse datum). U kunt bijvoorbeeld 6-10-99 of 6 oktober 1999 invoeren.
-p passgen Geeft aan dat het FLAG-veld in het bestand /etc/schaduw moet op de opgegeven waarde worden ingesteld. Dit veld is toegankelijk via de opdracht wachtwoord om te bepalen of de wachtwoordgenerator geldig is voor een bepaalde gebruiker. Indien optie -P niet expliciet gespecificeerd, de invoer wordt gecontroleerd FORCED_PASS in bestand /etc/default/useradd om de waarde voor het corresponderende veld in te bepalen /etc/schaduw. Als records FORCED_PASS nee erin /etc/default/useradd, in het overeenkomstige veld van de invoer in /etc/schaduw het maakt niet uit. Als de waarde FORCED_PASS is gelijk aan 1, invoer in /etc/schaduw krijgt de waarde 1. Als de waarde passagiers niet leeg is en geen afdrukbaar ASCII-teken is, wordt er een diagnostisch bericht weergegeven.
-een gebeurtenis Lijst met gebeurtenistypen of klassen, gescheiden door komma's, gevormd auditmasker(auditmasker) voor de gebruiker. Direct na installatie van het systeem is er geen standaard auditmasker voor de gebruiker, maar kan dit in het bestand worden ingesteld /etc/default/useradd met behulp van de opdracht defadm. Deze optie kan alleen worden gebruikt als Auditing Utilities zijn geïnstalleerd. (Om erachter te komen welke pakketten op het systeem zijn geïnstalleerd, voert u de opdracht uit pkginfo.)
reg_naam Een afdrukbare tekenreeks die de aanmeldingsnaam voor de nieuwe gebruiker specificeert. Het mag geen dubbele punten bevatten ( : ) en regelinvoertekens ( \N). Het mag ook niet met een hoofdletter beginnen.

Merk op dat veel van de standaardwaarden voor de hierboven besproken parameters kunnen worden gewijzigd met behulp van de opdracht defadm, ontworpen om met een bestand te werken /etc/default/useradd. Deze standaardwaarden zijn alleen van toepassing op lokale gebruikers. Voor NIS-gebruikers worden standaardwaarden ingesteld in de Network Information Service-database. Om de NIS-standaardinstellingen te wijzigen, moet u opties opgeven op de opdrachtregel.

Registratienamen voor netwerkinformatiediensten

Als de inlognaam begint met het teken + , (Bijvoorbeeld, +Chris), wordt de gebruikersdefinitie beheerd door de Network Information Service (NIS). Standaardwaarden worden bepaald op basis van de NIS-database in plaats van op basis van het bestand /etc/defaults/useradd. Argumentwaarden voor opties -u, -G En -G wordt stilzwijgend genegeerd als deze opties zijn opgegeven. In plaats daarvan worden de gebruikers-ID- en groeps-ID-waarden uit de NIS-database gehaald. Zie de helppagina voor details. wachtwoord. Houd er rekening mee dat bij het toevoegen van een NIS-gebruiker de login al in de NIS-database moet bestaan. Bijvoorbeeld om een ​​inlognaam toe te voegen Chris als NIS-gebruikersnaam, Chris moet al bestaan ​​in de NIS-database. Dan moet je bellen gebruikeradd met registratienaam +Chris om aan te geven dat een gebruiker moet worden toegevoegd Chris als NIS-gebruiker, niet als lokale gebruiker.

BESTANDEN

/etc/default/useradd
/etc/groep
/etc/passwd
/etc/security/ia/ageduid
/etc/security/ia/audit(als Auditing Utilties zijn geïnstalleerd)
/etc/security/ia/index
/etc/security/ia/master
/etc/schaduw
/etc/skel

DIAGNOSE

Team gebruikeradd wordt afgesloten met returncode 0 indien succesvol. Als er fouten optreden, kunnen de volgende berichten worden weergegeven:


Ongeldige opdrachtregelsyntaxis.
De syntaxis van de opdrachtregel was ongeldig.
Er is een ongeldig argument opgegeven in de optie.
Er werd een ongeldig argument voorzien van een optie.
De ID die is opgegeven in de optie -u is al in gebruik, maar de optie -o is niet opgegeven.
De uid die is opgegeven met de optie -u is al in gebruik en de optie -o is niet opgegeven.
De groep die is opgegeven met de optie -g bestaat niet.
De groep die is opgegeven met de optie -g bestaat niet.
De opgegeven inlognaam is niet uniek.
De opgegeven login is niet uniek.
Kan /etc/group. niet wijzigen. De login wordt toegevoegd aan het bestand /etc/passwd, maar niet aan het bestand /etc/group.
Kan /etc/group. De login is toegevoegd aan het bestand /etc/passwd, maar niet aan het bestand /etc/group.
De startmap kon niet worden aangemaakt (met de optie -m) of het kopiëren van skel_dir naar de startmap is mislukt.
Kan de thuismap niet maken (met de optie -m) of kan de kopie van skel_dir naar de thuismap niet voltooien.
Het identiteitsbewijs is niet oud genoeg. Kies een ander.
vloeistof niet voldoende verouderd. Kies een ander.
Er is een ongeldige optie -a opgegeven; systeemservice is niet geïnstalleerd.
Er is een ongeldige optie -a opgegeven; systeemservice niet geïnstalleerd.
Het opgegeven auditgebeurtenistype of -klasse is ongeldig.
Er is een ongeldig type auditgebeurtenis of klassegebeurtenis opgegeven.

Bij systemen die toegang voor meerdere gebruikers bieden, of het nu om een ​​besturingssysteem, software of contentmanagementsysteem (CMS) gaat, is het erg belangrijk om over tools te beschikken voor een betrouwbaar beheer van gebruikers (hun accounts of accounts, gebruikersconfiguraties, homemappen, enz. ), evenals voor het organiseren en beheren van de gebruikerstoegang zelf. In dergelijke gevallen is competent en doordacht beheer van gebruikers (meer bepaald hun accounts) een belangrijk aspect waarvan de veiligheid, stabiliteit en, als gevolg daarvan, de betrouwbaarheid van het hele systeem afhangen. Moderne Linux-distributies hebben geautomatiseerde gebruikersbeheersystemen met een duidelijke grafische gebruikersinterface (GUI), waarmee u snel en gemakkelijk routinematige (zoals in werkelijkheid blijkt) activiteiten kunt uitvoeren voor het beheren van gebruikers en het configureren van hun accounts. Het is echter van groot belang om te weten en te begrijpen hoe en welke daadwerkelijke processen en veranderingen plaatsvinden in het systeem zelf tijdens gebruikersbeheer.

Gebruikers toevoegen in Linux

Om een ​​nieuwe gebruiker met de naam John aan het systeem toe te voegen, voert u eenvoudigweg de opdracht uit:

$sudo useradd john

Hierdoor wordt de volgende vermelding in het bestand /etc/passwd gemaakt:

Jan:x:535:20: :/home/john:/bin/sh

Echter, de ploeg gebruikeradd heeft veel grotere mogelijkheden, bijvoorbeeld:

$ sudo useradd -c "John Silver" -d /home/pirates/john -g pirates -G john -m -s /bin/bash john

Met deze opdracht wordt een gebruiker met de volledige naam "John Silver" en de inlognaam "john" aan het systeem toegevoegd. Door hem op te nemen in de hoofdgroep "pirates", wordt hij ook toegevoegd aan een andere extra groep "John" en wordt hem een ​​homedirectory toegewezen op /home/pirates/john. Als gevolg hiervan zal het overeenkomstige item in het bestand /etc/passwd er ongeveer zo uitzien:

John:x:535:30:John Silver:/home/pirates/john:/bin/bash

Team gebruikeradd creëert automatisch de homedirectory van de gebruiker als deze nog niet is aangemaakt. A kopieert ook bestanden van /etc/skel/ ernaar.

Volledige lijst met parameters gebruikeradd

Gebruik: useradd [opties] GEBRUIKER
useradd-D
useradd -D [opties]

Opties:
-B, --base-dir BAZ_KAT basismap voor de thuismap van het nieuwe
rekening
-C, --comment COMMENT veld GECOS van het nieuwe account
-D, --home-dir DOM_KAT thuismap van het nieuwe account
-D, --defaults tonen of wijzigen instellingen
standaard voor useradd
-e, --expiredate DATE_STATE de vervaldatum van het nieuwe account
-F, —inactief INACTIVITEIT periode van inactiviteit van het nieuwe accountwachtwoord
-G, --gid GROUP naam of ID van de primaire groep van de nieuwe
rekening
-G, --groups GROUPS lijst met aanvullende groepen van het nieuwe
rekening
-k, --skel CAB_SHAB gebruikt een alternatieve map met sjablonen
-K, --key KEY=VALUE vervangt de standaardwaarde
uit /etc/login.defs
-l, --no-log-init voegt de gebruiker niet toe aan de lastlog-databases en
faillog
-M, --create-home maakt de thuismap van de gebruiker
-M, --no-create-home maakt de thuismap van de gebruiker niet aan
-N, --no-user-group maak geen groep aan met dezelfde naam als
gebruiker
-O, --non-unique staat het aanmaken van gebruikers toe
herhalende (niet unieke) UID's
-P, --password PASSWORD gecodeerd wachtwoord voor het nieuwe account
-R, --system maak een systeemaccount aan
-R
-S, --shell SHELL registratieshell van de nieuwe
rekening
-u, --uid UID gebruikers-ID van het nieuwe account
-U, --user-group maak een groep met dezelfde naam als
gebruiker
-Z, --selinux-user SEUSER gebruik de gespecificeerde SEUSER voor
Aangepaste SELinux-toewijzing

Een homedirectory maken en toewijzen aan een gebruiker

Normaal gesproken wordt er automatisch een thuismap aangemaakt wanneer een gebruiker aan het systeem wordt toegevoegd. Maar er zijn momenten waarop om de een of andere reden de thuismap niet wordt aangemaakt. En dan is het nodig om het te creëren. Om de homedirectory van een gebruiker te maken, gebruikt u de standaardopdracht mkdir. Hierna moet u de benodigde configuratiescripts naar de thuismap kopiëren (om de werkomgeving van de gebruiker te organiseren) en vervolgens met behulp van de opdrachten chown en chmod de eigenaar en toegangsmodi instellen op de map en de inhoud ervan. Dit kunt u het beste doen nadat alle configuratiebestanden naar de doelmap zijn gekopieerd. Bijvoorbeeld:

$ mkdir /home/john/ $ cd /etc/skel/ $ cp -Rp . /home/john/ $ chown -R john:john /home/john/ $ chmod -R 644 /home/john/ $ vind /home/john/ -type d -exec chmod 755 () \;

Zoals u kunt zien, zijn de configuratiebestanden gekopieerd uit de map /etc/skel/ - hier worden voorbeelden van opstartconfiguraties opgeslagen, die indien nodig kunnen worden bewerkt. Overigens zou een gewijzigde kopie van de bestanden uit de map /etc/skel/ in de map usr/local/etc/skel moeten worden opgeslagen. Bij het instellen van de eigenaar van de homedirectory moet ervoor worden gezorgd dat (in geval van onzorgvuldig gebruik van het chown-commando) de gebruiker niet de eigenaar wordt van de pseudo-directory "..", d.w.z. het mapniveau erboven, Dit is vaak de map /home, wat om veiligheidsredenen onaanvaardbaar is.

Een wachtwoord voor een gebruiker aanmaken

Om veiligheidsredenen moet uw account een sterk wachtwoord hebben. Welke onmiddellijk na het aanmaken van een gebruikersaccount moet worden ingesteld:

$ sudo wachtwoord naam_van_nieuwe_gebruiker

Voor gebruiker Jonh bijvoorbeeld:

$ sudo passwd john Nieuw wachtwoord: Voer het nieuwe wachtwoord opnieuw in: passwd: Alle authenticatiegegevens zijn succesvol bijgewerkt.

Account verificatie

Voordat u de gegevens en het initiële wachtwoord om in te loggen op uw account overdraagt ​​aan een nieuwe gebruiker, moet dit worden geverifieerd. Om dit te doen, moet u de huidige sessie beëindigen. En log in onder de naam van de nieuwe gebruiker (wiens account geverifieerd moet worden). En voer de volgende opdrachten achtereenvolgens uit:

$ pwd $ ls -al

De eerste toont de thuismap voor de huidige gebruiker, de tweede toont een lijst met alle (inclusief verborgen) bestanden en submappen in de thuismap, met vermelding van hun eigenaar en toegangsmodi.

Accountbeheer

Zoals eerder opgemerkt, zijn er voor het beheren van gebruikers in Linux-systemen sets gespecialiseerde hulpprogramma's voor het toevoegen, bewerken en verwijderen van accounts (gebruikers) - useradd, usermod en userdel. Ze volgen een voorgeschreven volgorde van acties om een ​​einddoel te bereiken, bijvoorbeeld in het geval van het toevoegen van een nieuwe gebruiker, het commando gebruikeradd produceert dienovereenkomstig de gehele hierboven beschreven “reeks activiteiten”. Elk van deze hulpprogramma's kan flexibel worden geconfigureerd met behulp van configuratiebestanden, die overigens zeer actief worden gebruikt door ontwikkelaars van Linux-distributies. Op verschillende Linux-systemen verschilt de werking van deze hulpprogramma's immers enigszins, hoewel de hulpprogramma's in wezen identiek zijn. Hieronder vindt u een tabel met de opdrachten en configuratiebestanden voor het beheren van gebruikers voor sommige systemen, waarbij het hulpprogramma als voorbeeld wordt gebruikt gebruikeradd:

Systeem Teams Configuratiebestanden Een reactie
Ubuntu gebruikeradd /etc/login.defs
Voeg gebruiker toe /etc/default/useradd Perl-versie
/etc/adduser.conf
SUSE gebruikeradd /etc/login.defs
/etc/default/useradd
/etc/default/passwd
/usr/sbin/useradd.local Lokale instellingen
/usr/sbin/userdel.local Lokale instellingen
/usr/sbin/userdel-pre.local Lokale instellingen
/usr/sbin/userdel-post.local Lokale instellingen
rode Hoed gebruikeradd /etc/login.defs
/etc/default/useradd
Solaris gebruikeradd /etc/default/(inloggen,wachtwoord)
/etc/security/policy.conf

Gebruikers verwijderen

Om gebruikers uit het systeem te verwijderen, gebruikt u de opdracht userdel, bijvoorbeeld de opdracht

userdel john

Zal de gebruiker john verwijderen, maar vaak (zoals de opdracht gebruikeradd, trouwens) niet in een “pure” vorm, maar in de vorm van Perl-shells die een script voor het verwijderen van accounts gebruiken. Ubuntu-distributies gebruiken bijvoorbeeld de opdracht deluser, een veelgebruikt Perl-script. Wat op zijn beurt de userdel-opdracht zelf aanroept om alles te verwijderen en op te ruimen wat eerder door de opdracht is gedaan gebruikeradd. In dit geval wordt een scriptbestand gebruikt (meestal het bestand /etc/deluser.conf in Ubuntu en /etc/login.defs in RedHat). Hiermee kunt u de volgende opties instellen voor de userdel-opdracht:

Gebruik: userdel [opties] GEBRUIKER

Opties:
-F, --force forceert verwijdering van gebruiker en bestanden, zelfs als ze momenteel in gebruik zijn
-R, --remove verwijder de thuismap en mailbox
-R, --root CAT_CHROOT map om in te chrooten
-Z, --selinux-user verwijder alle gebruikerstoewijzingen
SELinux voor gebruiker

Bestand /etc/passwd – beschrijving van lokale accounts

Als het systeem geen gebruik maakt van een geautomatiseerde directorybeheerservice (bijvoorbeeld LDAP, NIS), dan is het bestand /etc/passwd het bestand waarin informatie wordt opgeslagen over gebruikersaccounts die bij het systeem bekend zijn. Het systeem heeft toegang tot dit bestand telkens wanneer een gebruiker zich probeert te authenticeren, op zoek gaat naar de vereiste gebruikers-ID en zijn thuismap bepaalt. Het formaat van dit bestand is dat elke regel erin overeenkomt met één specifieke gebruiker (account), die (in een regel) de attributen (velden) van de account opsomt, gescheiden door een dubbele punt:

  1. Gebruikersnaam.
  2. Gebruikerswachtwoord (gecodeerd) of “placeholder”-wachtwoord.
  3. Gebruikersnaam.
  4. Gebruikersgroep-ID (standaard).
  5. GECOS-informatie - volledige naam, kantoor, telefoonnummers, etc.
  6. Thuismap.
  7. Registratieschaal.

De inhoud van het bestand /etc/passwd zou er als volgt uit kunnen zien: Zoals u kunt zien, bevat het tweede veld voor alle vermeldingen een “x”, een tijdelijke aanduiding voor het wachtwoord. Op Linux-systemen worden gecodeerde wachtwoorden afzonderlijk opgeslagen in het bestand /etc/shadow. Als de geautomatiseerde directorybeheerservice wordt gebruikt in combinatie met het bestand /etc/passwd, bevat hetzelfde bestand vermeldingen die beginnen met het teken “+”. Deze vermeldingen bevatten instructies voor het integreren van directorybeheerservices in het systeem. Het is de moeite waard om even naar de accountvelden te kijken:

  • Gebruikersnaam of inlognaam- een unieke naam die moet worden samengesteld volgens de regels voor het construeren van registratienamen voor een bepaald systeem. Voor Linux kan de inlognaam maximaal 32 tekens lang zijn. Er mogen uitsluitend kleine letters en cijfers worden gebruikt. De registratienaam moet beginnen met een letter.
  • Gecodeerd wachtwoord- zoals reeds opgemerkt, worden wachtwoorden voor lokale accounts in gecodeerde vorm opgeslagen in /etc/shadow. In Linux worden crypt-, MD5- en Blowfish-algoritmen gebruikt als cryptografische hulpmiddelen voor het coderen van wachtwoorden. De minimale wachtwoordlengte is 5 tekens, de maximale lengte is 8
  • gebruikersnaam is een geheel getal zonder teken waarmee het systeem individuele gebruikers “herkent”, dus gebruikersidentificaties worden gebruikt door het systeem en de softwareomgeving, terwijl gebruikersnamen worden gebruikt voor de duidelijkheid en het gemak van de presentatie van gebruikers in het systeem. Het ID-nummer 0 is gereserveerd voor de rootgebruiker, en het wordt ook aanbevolen om ID's na 500 toe te wijzen aan echte gebruikers, aangezien er veel “niet-geïdentificeerde” gebruikers in het systeem kunnen zijn, zoals bin of daemon - hierdoor blijft de lijst met gebruikers op orde en vermijd verwarring. Linux-systemen bieden ook een pseudo-gebruiker niemand, met een identificatie van -1 of -2. Normaal gesproken wordt deze pseudo-gebruiker gebruikt wanneer de systeemsuperuser probeert toegang te krijgen tot bestanden die zijn aangekoppeld vanaf een andere computer die geen vertrouwen heeft in de oorspronkelijke computer.
  • Groeps-ID- een geheel getal zonder teken, vergelijkbaar met een gebruikersidentificatie, bedoeld om unieke gebruikersgroepen in het systeem aan te duiden. Groepsnummer 0 is gereserveerd voor de rootgroep. Groepen worden voornamelijk gebruikt voor handig beheer en delen van bestanden. Net als bij gebruikers-ID's reserveert het systeem groepen (zoals bin) voor gebruik door het systeem zelf.
  • VeldGECOS– informatie die geen duidelijk gedefinieerde specificatie heeft, bevat aanvullende gegevens over de gebruiker: zijn volledige naam, telefoonnummers, informatie over functie en afdeling, enz. Informatie in dit veld kan worden gewijzigd met behulp van de opdracht chfn.
  • Thuismap- een “plaats” in de bestandssysteemboom die gereserveerd is voor het opslaan van gegevens van een specifieke gebruiker. Om veiligheidsredenen mag deze map alleen toegankelijk zijn voor de gebruiker die eigenaar is van deze map. Als er op het moment van registratie geen homedirectory is, worden de gebruikersgegevens in de map / geplaatst. Als de optie DEFAULT_HOME in het bestand /etc/login.defs, die de standaard thuismap specificeert, is ingesteld op nee, is gebruikersautorisatie/registratie onmogelijk.
  • Registratieschaal- een opdrachtshell voor een opdrachtinterpreter (of een ander programma), die wordt gestart wanneer de gebruiker inlogt op zijn account. Voor Linux wordt een tolk gebruikt

Bestand /etc/group – gebruikersgroepen maken en verwijderen

Het toevoegen van een nieuwe groep in Linux gebeurt met behulp van de opdracht

$groupadd groepsnaam

waarbij groepsnaam de naam van de nieuwe groep is. Met deze opdracht wordt een nieuw item in het bestand /etc/group gemaakt

Het formaat van dit bestand is hetzelfde als /etc/passwd. Voorbeeld van de inhoud van het bestand /etc/group:
Zoals u kunt zien, bevat elke regel vier velden:

  1. Groepsnaam.
  2. Gecodeerd wachtwoord of tijdelijke aanduiding voor wachtwoord.
  3. Unieke groepsidentificatie.
  4. Een lijst met gebruikers in deze groep, met gebruikersnamen gescheiden door komma's zonder spaties.

Het interessante hier is het wachtwoordveld. Het doel van het groepswachtwoord is om gebruikers in staat te stellen lid te worden van de groep met behulp van de opdracht newgrp. Het wachtwoord voor de groep zelf wordt ingesteld met het gpasswd-commando, waarna het in gecodeerde vorm wordt opgeslagen in het bestand /etc/gshadow. Er moet echter worden opgemerkt dat wachtwoorden voor groepen uiterst zelden worden gebruikt. Systeembeheerders moeten de inhoud van de bestanden /etc/passwd en /etc/group controleren en deze met elkaar coördineren, aangezien er soms situaties ontstaan ​​wanneer een gebruiker wordt gespecificeerd als lid van een groep in het bestand /etc/passwd en op de op hetzelfde moment in het /etc/group-bestand van dezelfde gebruiker, geen aankondiging. Opgemerkt moet worden dat in dit geval de gebruiker als lid van de groep wordt beschouwd, maar het wordt nog steeds sterk aanbevolen dat de inhoud van beide bestanden consistent is.

Standaard in Linux-distributies (behalve SUSE), bij het aanmaken van een gebruiker (de utility gebruikeradd) wordt zijn gelijknamige groep gecreëerd, waarin hij onmiddellijk wordt opgenomen. Dit wordt gedaan om de mogelijkheid dat verschillende gebruikers toegang krijgen tot elkaars bestanden zoveel mogelijk te elimineren.

Met het commando kunt u een gebruikersgroep verwijderen

$groupdel groepsnaam

Met dit commando wordt het item uit /etc/group verwijderd.

Bestand /etc/shadow – wachtwoorden opslaan

Een apart /etc/shadow-bestand wordt gebruikt om verborgen of schaduwwachtwoorden op te slaan. Waartoe alleen de superuser toegang heeft. Er moet ook worden opgemerkt dat de bestanden /etc/shadow en /etc/passwd conceptueel verwant zijn, maar dat er op systeemniveau vrijwel geen interactie tussen beide bestaat. Behalve dat het veld met de loginnaam in de schaduw afkomstig is van passwd. Die. Bij het wijzigen van de schaduw worden de wijzigingen niet automatisch weergegeven in passwd - deze bestanden worden afzonderlijk opgeslagen en onafhankelijk van elkaar door het systeem verwerkt. Het formaat van /etc/shadow is vergelijkbaar met /etc/passwd en elke regel bevat de volgende velden:

  1. Registratie naam.
  2. Het wachtwoord is gecodeerd.
  3. Datum waarop het wachtwoord voor het laatst is gewijzigd.
  4. Minimum aantal dagen tussen wachtwoordwijzigingen.
  5. Maximaal aantal dagen tussen wachtwoordwijzigingen.
  6. Het aantal dagen voordat het bericht over het verlopen van het wachtwoord wordt verzonden.
  7. Het aantal dagen (na het verlopen van het wachtwoord) totdat het account automatisch wordt geannuleerd.
  8. Geldigheidsperiode van account.
  9. Gereserveerd veld.

De invoer uit het bestand /etc/shadow ziet er als volgt uit:

John:$md5$em5JhGE$a$iQhgS70sakdRaRFyy7Ppj. :14469:0:180:14: : :


Houd er rekening mee dat de eerste twee velden verplicht zijn. Het formaat van de datumvelden komt overeen met het aantal dagen dat is verstreken sinds 1 januari 1970. Het registratienaamveld wordt, zoals al opgemerkt, gevuld met de overeenkomstige waarde uit het bestand /etc/passwd. Op Linux bevat het zevende veld een waarde die bepaalt hoe lang (in dagen) nadat het wachtwoord is verlopen, het account automatisch wordt uitgeschakeld. Deze interpretatie wijkt af van de interpretatie die wordt gebruikt op Solaris- en HP-UX-systemen. In het achtste veld kunt u de opdracht usermod in de notatie jjjj-mm-uu gebruiken om de vervaldatum van de account in te stellen.

Als u een fout tegenkomt, markeer dan een stuk tekst en klik Ctrl+Enter.