Zoeken op website

15 Handige Useradd-opdrachten met voorbeelden in Linux


We kennen allemaal de meest populaire commando's genaamd ‘useradd‘ of ‘adduser‘ in Linux. Er zijn momenten waarop een Linux-systeembeheerder wordt gevraagd om gebruikersaccounts op Linux aan te maken met specifieke eigenschappen, beperkingen of opmerkingen.

In Linux is de opdracht ‘useradd’ een hulpprogramma op laag niveau dat wordt gebruikt voor het toevoegen of aanmaken van gebruikersaccounts in Linux en andere Unix-achtige besturingssystemen. Het commando ‘adduser’ lijkt sterk op het commando ‘useradd’, omdat het slechts een symbolische link ernaar is.

In sommige Linux-distributies kan de opdracht ‘useradd’ een iets andere versie hebben. Ik stel voor dat u uw documentatie leest voordat u onze instructies gebruikt om nieuwe gebruikersaccounts in Linux aan te maken.

Wanneer we de opdracht ‘useradd‘ in de Linux-terminal uitvoeren, voert deze de volgende belangrijke taken uit:

  • Het bewerkt /etc/passwd, /etc/shadow, /etc/group, en /etc/gshadow bestanden voor de nieuw aangemaakte gebruikersaccounts.
  • Creëert en vult een thuismap voor de nieuwe gebruiker.
  • Stelt machtigingen en eigendommen in voor de thuismap.

Gebruik de opdrachtsyntaxis

De basissyntaxis van het ‘useradd‘ commando is:

useradd [options] username

In dit artikel zullen we de 15 meest gebruikte ‘useradd’-opdrachten demonstreren met praktische voorbeelden in Linux.

1. Hoe u een nieuwe gebruiker kunt toevoegen in Linux

Om een nieuwe gebruiker toe te voegen of aan te maken, moet u de opdracht ‘useradd‘ of ‘adduser‘ gebruiken, gevolgd door de opdracht ‘gebruikersnaam‘. De ‘gebruikersnaam‘ is de inlognaam waarmee een gebruiker inlogt op het systeem.

Er kan slechts één gebruiker worden toegevoegd en de gebruikersnaam moet uniek zijn en mag niet al op het systeem bestaan.

Om bijvoorbeeld een nieuwe gebruiker met de naam ‘tecmint’ toe te voegen, gebruikt u het volgende commando:

useradd tecmint

Wanneer we een nieuwe gebruiker in Linux toevoegen met het commando ‘useradd’, wordt deze aangemaakt in een vergrendelde staat. Om dat gebruikersaccount te ontgrendelen, moeten we een wachtwoord voor dat account instellen met behulp van de opdracht ‘passwd’.

passwd tecmint

Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Zodra een nieuwe gebruiker is aangemaakt, wordt zijn invoer automatisch toegevoegd aan het ‘/etc/passwd‘ bestand. Dit bestand wordt gebruikt om de informatie van de gebruiker op te slaan, en de invoer zou dat moeten zijn.

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

Het bovenstaande item bevat een set van zeven door dubbele punten gescheiden velden, waarbij elk veld zijn eigen betekenis heeft.

Laten we eens kijken wat deze velden zijn:

  • Gebruikersnaam – De inlognaam van de gebruiker wordt gebruikt om in te loggen op het systeem. Het moet tussen 1 en 32 tekens lang zijn.
  • Wachtwoord – Het gebruikerswachtwoord (of het teken 'x') wordt in gecodeerd formaat opgeslagen in het bestand '/etc/shadow'.
  • Gebruikers-ID (UID) – Elke gebruiker moet een gebruikers-ID (UID) hebben, wat staat voor Gebruikersidentificatienummer. Standaard is UID 0 gereserveerd voor de rootgebruiker, en UID's variërend van 1 tot 99 zijn gereserveerd voor andere vooraf gedefinieerde accounts. Bovendien zijn UID's variërend van 100 tot 999 gereserveerd voor systeemaccounts en groepen.
  • Groeps-ID (GID) – De primaire groeps-ID (GID), wat staat voor Groepsidentificatienummer, wordt opgeslagen in de ' /etc/group' bestand.
  • Gebruikersinformatie – Dit veld is optioneel en biedt u de mogelijkheid extra informatie over de gebruiker te definiëren, zoals de volledige naam van de gebruiker. Deze informatie kan worden ingevuld met behulp van het vingercommando.
  • Thuismap – De absolute locatie van de thuismap van de gebruiker.
  • Shell – De absolute locatie van de shell van een gebruiker, bijvoorbeeld /bin/bash.

2. Een gebruiker aanmaken met een andere thuismap

Standaard maakt de opdracht ‘useradd’ de thuismap van een gebruiker aan onder de map ‘/home’ met de gebruikersnaam. Zoals hierboven te zien is, is de standaard homedirectory voor de gebruiker ‘tecmint‘ bijvoorbeeld ‘/home/tecmint‘.

Dit gedrag kan echter worden gewijzigd door de optie '-d' te gebruiken, samen met de locatie van de nieuwe thuismap (bijvoorbeeld ‘/data/projects‘). Met het volgende commando wordt bijvoorbeeld een gebruiker 'anusha' aangemaakt met een homedirectory ingesteld op '/data/projects'.

useradd -d /data/projects anusha
passwd anusha

U kunt de thuismap van de gebruiker en andere gebruikersgerelateerde informatie, zoals gebruikers-ID, groeps-ID, shell en opmerkingen, bekijken met behulp van de volgende cat-opdracht.

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash

3. Hoe u een gebruiker met een specifieke gebruikers-ID kunt aanmaken

In Linux heeft elke gebruiker zijn eigen UID (Unique Identification Number). Wanneer we een nieuw gebruikersaccount in Linux aanmaken, worden standaard gebruikers-ID's 500, 501, 502, enzovoort toegewezen.

We kunnen echter gebruikers met aangepaste gebruikers-ID's aanmaken met behulp van de optie '-u'. Met de volgende opdracht wordt bijvoorbeeld een gebruiker 'navin' gemaakt met een aangepast gebruikers-ID '1002'.

useradd -u 1002 navin

Laten we nu verifiëren dat de gebruiker een gedefinieerd gebruikers-ID (1002) heeft gemaakt met behulp van de volgende opdracht.

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash

OPMERKING: Zorg ervoor dat de waarde van een gebruikers-ID uniek moet zijn ten opzichte van alle andere reeds aangemaakte gebruikers op het systeem.

4. Hoe u een gebruiker met een specifiek groeps-ID kunt aanmaken

Op dezelfde manier heeft elke gebruiker zijn eigen GID (Group Identifier). We kunnen ook gebruikers met specifieke groeps-ID's aanmaken met behulp van de '-g' optie.

In dit voorbeeld voegen we een gebruiker 'tarunika' toe met een specifieke UID en GID tegelijkertijd met behulp van de '- u' en '-g' opties.

useradd -u 1005 -g tecmint tarunika

Controleer nu de toegewezen gebruikers-ID en groeps-ID in het bestand ‘/etc/passwd’.

cat /etc/passwd | grep tarunika

tarunika:x:1005:1000::/home/tarunika:/bin/bash

Om de GID van de gebruiker te verifiëren, gebruikt u het id-commando:

id -gn tarunika

5. Hoe u een gebruiker aan meerdere groepen kunt toevoegen

De '-G' optie wordt gebruikt om een gebruiker aan extra groepen toe te voegen. Elke groepsnaam wordt gescheiden door een komma, zonder tussenliggende spaties.

In dit voorbeeld voegen we een gebruiker 'tecmint' toe aan meerdere groepen, zoals admins, webadmin en developers sterk>.

groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy

Controleer vervolgens of de meerdere groepen aan de gebruiker zijn toegewezen met de opdracht id.

id tecmint

uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. Een gebruiker toevoegen zonder thuismap

In bepaalde situaties, waarin we om veiligheidsredenen geen homedirectory's aan een gebruiker willen toewijzen, zal de homedirectory van de gebruiker de rootdirectory zijn wanneer deze inlogt op een systeem dat zojuist opnieuw is opgestart. Wanneer een dergelijke gebruiker de opdracht ‘su‘ gebruikt, zal zijn inlogmap de thuismap van de vorige gebruiker zijn.

Om gebruikers zonder hun thuismappen aan te maken, wordt de optie '-M' gebruikt. Met het volgende commando wordt bijvoorbeeld een gebruiker ‘shilpi’ aangemaakt zonder een thuismap.

useradd -M shilpi

Laten we nu verifiëren dat de gebruiker is gemaakt zonder een thuismap met behulp van de opdracht ls.

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory

7. Een gebruiker met een vervaldatum aanmaken in Linux

Wanneer we gebruikers toevoegen met de opdracht ‘useradd‘, verloopt het gebruikersaccount standaard nooit, wat betekent dat hun vervaldatum is ingesteld op 0 (wat betekent dat het nooit is verlopen).

We kunnen de vervaldatum echter instellen met de optie '-e', die de notatie JJJJ-MM-DD moet hebben. Dit is handig als u tijdelijke accounts voor een bepaalde periode wilt maken.

In dit voorbeeld maken we een gebruiker 'aparna' met een vervaldatum van de account, namelijk 27 augustus 2021, in het JJJJ-MM-DD > formaat.

useradd -e 2021-08-27 aparna

Controleer vervolgens de account- en wachtwoordverouderingsinformatie met behulp van de opdracht ‘chage’ voor de gebruiker ‘aparna’ nadat u de vervaldatum van het account hebt ingesteld.

chage -l aparna

Last password change					: Jun 25, 2021
Password expires					: never
Password inactive					: never
Account expires						: Aug 27, 2021
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

8. Hoe u een gebruiker met een vervaldatum voor het wachtwoord kunt aanmaken

Het argument '-f' wordt gebruikt om het aantal dagen te definiëren nadat een wachtwoord verloopt. Een waarde van 0 inactiveert het gebruikersaccount zodra het wachtwoord is verlopen. Standaard is de waarde voor het verlopen van het wachtwoord ingesteld op -1, wat betekent dat deze nooit verloopt.

In dit voorbeeld stellen we een vervaldatum voor het accountwachtwoord in, namelijk 45 dagen, voor een gebruiker 'mansi' met behulp van de '-e' en '-f' opties.

useradd -e 2014-04-27 -f 45 mansi

9. Hoe u een gebruiker met opmerkingen kunt toevoegen in Linux

Met de optie '-c' kunt u aangepaste opmerkingen, zoals de volledige naam van de gebruiker, telefoonnummer, enz., toevoegen aan het bestand ‘/etc/passwd‘. De opmerking kan als één regel zonder spaties worden toegevoegd.

Met het volgende commando wordt bijvoorbeeld een gebruiker 'mansi' toegevoegd en de volledige naam van die gebruiker, Manis Khurana, in het commentaarveld ingevoegd.

useradd -c "Manis Khurana" mansi

U kunt de ingevoegde opmerking bekijken in het ‘/etc/passwd’ bestand in de opmerkingensectie met behulp van de tail-opdracht.

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

10. Hoe u een gebruikersinlogshell kunt maken in Linux

Soms voegen we gebruikers toe die niets te maken hebben met de login-shell of soms zijn we verplicht om verschillende shells aan onze gebruikers toe te wijzen. We kunnen aan elke gebruiker verschillende login-shells toewijzen met de optie ‘-s’.

Hier in dit voorbeeld wordt een gebruiker ‘tecmint‘ toegevoegd zonder een login-shell, d.w.z. ‘/sbin/nologin‘ shell.

useradd -s /sbin/nologin tecmint

U kunt de toegewezen shell aan de gebruiker controleren in het bestand ‘/etc/passwd’.

tail -1 /etc/passwd

tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

11. Een gebruiker aanmaken met gespecificeerde thuispagina, shell en commentaar

Met het volgende commando wordt een gebruiker 'ravi' aangemaakt met een thuismap '/var/www/tecmint', een standaardshell van /bin/bash, en aanvullende informatie over de gebruiker.

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

In het bovenstaande commando creëren de opties '-m' en '-d' een gebruiker met een gespecificeerde thuismap, en de '-s' optie stelt de standaardshell van de gebruiker in op /bin/bash. De optie '-c' voegt extra informatie toe over de gebruiker en het argument '-U' maakt/voegt een groep toe met dezelfde naam als de gebruiker.

12. Hoe u een gebruiker kunt aanmaken met een gedefinieerd huis, shell, commentaar, UID/GID

Het commando lijkt erg op het commando hierboven, maar hier definiëren we de shell als '/bin/zsh' en stellen we aangepaste UID en GID in voor een gebruiker 'tarunika'. De '-u' optie definieert de UID van de nieuwe gebruiker (d.w.z. 100), en de '-g' optie definieert de GID (d.w.z. , 1000).

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

13. Een gebruiker aanmaken met Home, No Shell, Commentaar en UID

De volgende opdracht lijkt sterk op de twee bovenstaande opdrachten. Het enige verschil is dat we hier de login-shell hebben uitgeschakeld voor een gebruiker met de naam ‘avishek’ met een aangepaste gebruikers-ID (d.w.z. 1019).

De optie '-s' stelt de standaardshell in op /bin/bash, maar in dit geval stellen we de login-shell in op '/usr/sbin/ nologin'. Dat betekent dat de gebruiker ‘avishek‘ niet in staat zal zijn om in te loggen op het systeem.

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

14. Een gebruiker aanmaken met een opgegeven Home, Shell, Skeleton en UID

De enige verandering in dit commando is dat we de optie '-k' hebben gebruikt om de aangepaste skeletmap in te stellen op /etc/custom.skell in plaats van de standaardmap, /etc/skel. We hebben ook de optie '-s' gebruikt om een andere shell, /bin/tcsh, te definiëren voor de gebruiker ‘navin‘.

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

15. Een gebruiker aanmaken zonder Thuis, Shell of Groep, met commentaar

Het volgende commando verschilt sterk van de andere hierboven uitgelegde commando's. Hier hebben we de optie '-M' gebruikt om een gebruiker aan te maken zonder de homedirectory van de gebruiker, en de optie '-N' wordt gebruikt om het systeem te instrueren om alleen een gebruikersnaam (zonder groep). De '-r' optie is voor het aanmaken van een systeemgebruiker.

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

Voor meer informatie en opties over ‘useradd‘ voert u de opdracht ‘useradd‘ uit in de terminal om de beschikbare opties te bekijken

useradd

Als u kenmerken van gebruikersaccounts wilt wijzigen, zoals het wijzigen van de gebruikersnaam, gebruikers-ID (UID), homedirectory, shell en meer, gebruikt u de opdracht usermod.