Intro van het Linux useradd Commando

het toevoegen van een gebruiker is een van de meest fundamentele oefeningen op elk computersysteem; dit artikel richt zich op hoe het op een Linux systeem te doen.

voordat ik aan de slag ga, wil ik drie grondbeginselen noemen om in gedachten te houden. Ten eerste hebben Linux-gebruikers, zoals bij de meeste besturingssystemen, een account nodig om in te kunnen loggen. Dit artikel heeft specifiek betrekking op lokale accounts, niet op netwerkaccounts zoals LDAP. Ten tweede hebben accounts zowel een naam (een gebruikersnaam genoemd) als een nummer (een gebruikersnaam genoemd). Ten derde, gebruikers worden meestal geplaatst in een groep. Groepen hebben ook een naam en groep ID.

zoals je zou verwachten, bevat Linux een command-line utility voor het toevoegen van gebruikers; het heet useradd. U kunt ook het commando adduser vinden. Veel distributies hebben deze symbolische link toegevoegd aan het useradd commando als een kwestie van gemak.

$ file `which adduser`
/usr/sbin/adduser: symbolic link to useradd

laten we eens kijken naar useradd.

Opmerking: De in dit artikel beschreven standaardwaarden komen overeen met die in Red Hat Enterprise Linux 8.0. U kunt subtiele verschillen vinden in deze bestanden en bepaalde standaardwaarden op andere Linux distributies of andere Unix besturingssystemen zoals FreeBSD of Solaris.

standaard gedrag

het basisgebruik van useradd is vrij eenvoudig: een gebruiker kan worden toegevoegd door alleen zijn gebruikersnaam op te geven.

$ sudo useradd sonny

In dit voorbeeld maakt het useradd commando een account aan genaamd sonny. Een groep met dezelfde naam wordt ook gecreëerd, en sonny wordt erin geplaatst om te worden gebruikt als de primaire groep. Er zijn andere parameters, zoals taal en shell, die worden toegepast volgens de standaardwaarden en waarden die zijn ingesteld in de configuratiebestanden /etc/default/useradd en /etc/login.defs. Dit is over het algemeen voldoende voor een enkel, persoonlijk systeem of een kleine, one-server zakelijke omgeving.

hoewel de twee bovenstaande bestanden het gedrag van useradd bepalen, wordt gebruikersinformatie opgeslagen in andere bestanden in de map / etc, waarnaar ik in dit artikel zal verwijzen.

– Bestand Beschrijving Velden (vet door useradd)
passwd Winkels gebruiker account details gebruikersnaam:niet gebruikt:uid:gid:opmerkingen:homedir:shell
shadow Slaat de beveiliging van uw account-details gebruikersnaam:wachtwoord:lastchange:minimum:maximum:waarschuwen:niet actief:vervallen:ongebruikte
groep Winkels groep details groepsnaam:niet gebruikt:gid:members

aanpasbaar gedrag

de opdrachtregel staat aanpassingen toe voor tijden waarin een beheerder een fijnere controle nodig heeft, zoals het opgeven van het ID-nummer van een gebruiker.

gebruikers-en groep – ID-nummers

standaard probeert useradd hetzelfde nummer te gebruiken voor de gebruikers-ID (UID) en de primaire groep-ID (gid), maar er zijn geen garanties. Hoewel het niet nodig is voor de UID en GID om te matchen, is het makkelijker voor beheerders om ze te beheren wanneer ze dat doen.

Ik heb alleen het scenario uit te leggen. Stel dat ik nog een account toevoeg, deze keer voor Timmy. Het vergelijken van de twee gebruikers, sonny en timmy, toont aan dat zowel gebruikers als hun respectievelijke primaire groepen werden gemaakt met behulp van het getent Commando.

$ getent passwd sonny timmy
sonny:x:1001:1002:Sonny:/home/sonny:/bin/bash
timmy:x:1002:1003::/home/timmy:/bin/bash
$ getent group sonny timmy
sonny:x:1002:
timmy:x:1003:

helaas komen gebruikers’ UID noch primaire GID overeen. Dit komt omdat het standaardgedrag is om de volgende beschikbare UID toe te wijzen aan de gebruiker en vervolgens te proberen hetzelfde nummer toe te wijzen aan de primaire groep. Als dat nummer echter al wordt gebruikt, wordt de volgende beschikbare GID aan de groep toegewezen. Om uit te leggen wat er gebeurd is, stel ik voor dat een groep met GID 1001 al bestaat en voer een commando in om te bevestigen.

$ getent group 1001
book:x:1001:alan

het groepsboek met ID 1001 heeft ervoor gezorgd dat De GIDs één keer uit Staat. Dit is een voorbeeld waar een systeembeheerder meer controle zou moeten nemen over het proces van het aanmaken van gebruikers. Om dit probleem op te lossen, moet ik eerst de volgende beschikbare gebruiker en groep ID bepalen die zal overeenkomen. De commando ‘ s getent group en getent passwd zullen nuttig zijn bij het bepalen van het volgende beschikbare nummer. Dit getal kan worden doorgegeven met het argument-u.

$ sudo useradd -u 1004 bobby
$ getent passwd bobby; getent group bobby
bobby:x:1004:1004::/home/bobby:/bin/bash
bobby:x:1004:

een andere goede reden om de ID op te geven is voor gebruikers die toegang krijgen tot bestanden op een remote systeem met behulp van het Network File System (NFS). NFS is gemakkelijker te beheren als alle client-en serversystemen dezelfde ID hebben geconfigureerd voor een bepaalde gebruiker. In mijn artikel over het gebruik van autofs om NFS shares aan te koppelen, ga ik iets meer in detail in.

meer aanpassingen

heel vaak moeten echter andere accountparameters worden opgegeven voor een gebruiker. Hier zijn korte voorbeelden van de meest voorkomende aanpassingen die u mogelijk moet gebruiken.

commentaar

de optie commentaar is een veld met platte tekst voor het verstrekken van een korte beschrijving of andere informatie met behulp van het argument-c.

$ sudo useradd -c "Bailey is cool" bailey
$ getent passwd bailey
bailey:x:1011:1011:Bailey is cool:/home/bailey:/bin/bash

groepen

aan een gebruiker kan één primaire groep en meerdere secundaire groepen worden toegewezen. Het argument-g specificeert de naam of GID van de primaire groep. Als deze niet is opgegeven, maakt useradd een primaire groep met dezelfde naam van de gebruiker (zoals hierboven is aangetoond). Het argument-G (hoofdletters) wordt gebruikt om een door komma ‘ s gescheiden lijst van groepen door te geven waarin de gebruiker zal worden geplaatst; deze staan bekend als secundaire groepen.

$ sudo useradd -G tgroup,fgroup,libvirt milly
$ id milly
uid=1012(milly) gid=1012(milly) groups=1012(milly),981(libvirt),4000(fgroup),3000(tgroup)

thuismap

het standaardgedrag van useradd is het aanmaken van de thuismap van de gebruiker in /home. Echter, verschillende aspecten van de home directory kunnen worden overschreven met de volgende argumenten. De-b stelt een andere directory in waar gebruikershuizen kunnen worden geplaatst. Bijvoorbeeld, / home2 in plaats van de standaard / home.

$ sudo useradd -b /home2 vicky
$ getent passwd vicky
vicky:x:1013:1013::/home2/vicky:/bin/bash

met de-d kunt u een persoonlijke map opgeven met een andere naam dan de gebruiker.

$ sudo useradd -d /home/ben jerry
$ getent passwd jerry
jerry:x:1014:1014::/home/ben:/bin/bash

de skeletmap

De-k instrueert de nieuwe persoonlijke map van de nieuwe gebruiker te vullen met alle bestanden in de /etc/skel map. Dit zijn meestal shell configuratiebestanden, maar ze kunnen alles zijn dat een systeembeheerder beschikbaar wil maken voor alle nieuwe gebruikers.

Shell

het argument-s kan worden gebruikt om de shell te specificeren. De standaard wordt gebruikt als er niets anders is opgegeven. Bijvoorbeeld, in het volgende, wordt shell bash gedefinieerd in het standaard configuratie bestand, maar Wally heeft zsh gevraagd.

$ grep SHELL /etc/default/useradd
SHELL=/bin/bash
$ sudo useradd -s /usr/bin/zsh wally
$ getent passwd wally
wally:x:1004:1004::/home/wally:/usr/bin/zsh

beveiliging

beveiliging is een essentieel onderdeel van gebruikersbeheer, dus er zijn verschillende opties beschikbaar met het commando useradd. Een gebruikersaccount kan een vervaldatum krijgen, in de vorm JJJJ-MM-DD, met behulp van het argument-e.

$ sudo useradd -e 20191231 sammy
$ sudo getent shadow sammy
sammy:!!:18171:0:99999:7::20191231:

een account kan ook automatisch worden uitgeschakeld als het wachtwoord verloopt. Het argument-f stelt het aantal dagen in nadat het wachtwoord verloopt voordat het account wordt uitgeschakeld. Zero is onmiddellijk.

$ sudo useradd -f 30 willy
$ sudo getent shadow willy
willy:!!:18171:0:99999:7:30::

een real-world voorbeeld

in de praktijk kunnen meerdere van deze argumenten worden gebruikt bij het aanmaken van een nieuw gebruikersaccount. Als ik bijvoorbeeld een account voor Perry moet aanmaken, kan ik het volgende commando gebruiken:

$ sudo useradd -u 1020 -c "Perry Example" \
-G tgroup -b /home2 \
-s /usr/bin/zsh \
-e 20201201 -f 5 perry

refereer naar de bovenstaande secties om elke optie te begrijpen. Controleer de resultaten met:

$ getent passwd perry; getent group perry; getent shadow perry; id perry
perry:x:1020:1020:Perry Example:/home2/perry:/usr/bin/zsh
perry:x:1020:
perry:!!:18171:0:99999:7:5:20201201:
uid=1020(perry) gid=1020(perry) groups=1020(perry),3000(tgroup)

enig definitief advies

het commando useradd is een” must-know ” voor elke Unix (niet alleen Linux) beheerder. Het is belangrijk om alle opties te begrijpen, omdat het maken van gebruikers iets is dat je de eerste keer goed wilt doen. Dit betekent dat u een goed doordachte naamgevingsconventie hebt die een speciale UID/GID-reeks bevat die is gereserveerd voor uw gebruikers in uw hele onderneming, niet alleen op één systeem—vooral wanneer u in een groeiende organisatie werkt.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *