Intro till Linux useradd-kommandot

att lägga till en användare är en av de mest grundläggande övningarna på alla datorsystem; den här artikeln fokuserar på hur man gör det på ett Linux-system.

innan jag börjar, vill jag nämna tre grundläggande saker att tänka på. Först, som med de flesta operativsystem, behöver Linux-användare ett konto för att kunna logga in. Den här artikeln täcker specifikt lokala konton, inte nätverkskonton som LDAP. För det andra har konton både ett namn (kallas ett användarnamn) och ett nummer (kallas ett användar-ID). För det tredje placeras användare vanligtvis i en grupp. Grupper har också ett namn och grupp-ID.som du förväntar dig innehåller Linux ett kommandoradsverktyg för att lägga till användare; det heter useradd. Du kan också hitta kommandot adduser. Många distributioner har lagt till denna symboliska länk till useradd-kommandot som en fråga om bekvämlighet.

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

Låt oss ta en titt på useradd.

Obs: standardinställningarna som beskrivs i den här artikeln återspeglar dem i Red Hat Enterprise Linux 8.0. Du kan hitta subtila skillnader i dessa filer och vissa standardvärden på andra Linux-distributioner eller andra Unix-operativsystem som FreeBSD eller Solaris.

standardbeteende

den grundläggande användningen av useradd är ganska enkel: en användare kan läggas till bara genom att ange sitt användarnamn.

$ sudo useradd sonny

i det här exemplet skapar kommandot useradd ett konto som heter sonny. En grupp med samma namn skapas också, och sonny placeras i den för att användas som den primära gruppen. Det finns andra parametrar, till exempel språk och skal, som tillämpas enligt standardvärden och värden som anges i konfigurationsfilerna /etc/default/useradd och /etc/login.defs. Detta är i allmänhet tillräckligt för ett enda, personligt system eller en liten affärsmiljö med en server.

medan de två filerna ovan styr beteendet hos useradd lagras användarinformation i andra filer som finns i /etc-katalogen, som jag kommer att hänvisa till i hela den här artikeln.

fil beskrivning fält (fet—inställd av useradd)
passwd lagrar användarkontouppgifter användarnamn:oanvänd:uid:gid:kommentar:homedir:skal
skugga lagrar användarkontosäkerhetsdetaljer användarnamn:lösenord:lastchange:minimum:maximum:varna:inaktiv:utgå:oanvänd
grupp lagrar gruppuppgifter gruppnamn:oanvänd:gid:medlemmar

anpassningsbart beteende

kommandoraden tillåter anpassning för tider när en administratör behöver finare kontroll, till exempel för att ange en användares ID-nummer.

användar-och grupp-ID-nummer

som standard försöker useradd använda samma nummer för användar-ID (UID) och primärt grupp-ID (GID), men det finns inga garantier. Även om det inte är nödvändigt för UID och GID att matcha, är det lättare för administratörer att hantera dem när de gör det.

Jag har bara scenariot att förklara. Anta att jag lägger till ett annat konto, den här gången för Timmy. Att jämföra de två användarna, sonny och timmy, visar att både användare och deras respektive primära grupper skapades med kommandot getent.

$ 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:

tyvärr matchar varken användarnas UID eller primära GID. Detta beror på att standardbeteendet är att tilldela nästa tillgängliga UID till användaren och sedan försöka tilldela samma nummer till den primära gruppen. Men om det numret redan används tilldelas nästa tillgängliga GID till gruppen. För att förklara vad som hände antar jag att en grupp med GID 1001 redan finns och anger ett kommando för att bekräfta.

$ getent group 1001
book:x:1001:alan

gruppboken med ID 1001 har fått Gid att vara avstängd med en. Detta är ett exempel där en systemadministratör skulle behöva ta mer kontroll över användarskapningsprocessen. För att lösa problemet måste jag först bestämma nästa tillgängliga användar-och grupp-ID som matchar. Kommandona getent group och getent passwd kommer att vara till hjälp för att bestämma nästa tillgängliga nummer. Detta nummer kan skickas med-u-argumentet.

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

en annan bra anledning att ange ID är för användare som kommer att komma åt filer på ett fjärrsystem med hjälp av Network File System (NFS). NFS är lättare att administrera när alla klient-och serversystem har samma ID konfigurerat för en viss användare. Jag täcker detta lite mer detaljerat i min artikel om att använda autofs för att montera NFS-aktier.

mer anpassning

Mycket ofta måste dock andra kontoparametrar anges för en användare. Här är korta exempel på de vanligaste anpassningarna du kan behöva använda.

kommentar

kommentaralternativet är ett vanligt textfält för att ge en kort beskrivning eller annan information med argumentet-c.

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

grupper

en användare kan tilldelas en primär grupp och flera sekundära grupper. Argumentet-g anger namnet eller GID för den primära gruppen. Om det inte anges skapar useradd en primär grupp med användarens samma namn (som visas ovan). Argumentet-G (versaler) används för att skicka en kommaseparerad lista över grupper som användaren kommer att placeras i; dessa kallas sekundära grupper.

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

hemkatalog

standardbeteendet för useradd är att skapa användarens hemkatalog i /home. Olika aspekter av hemkatalogen kan dock åsidosättas med följande argument. -B anger en annan katalog där Användarhem kan placeras. Till exempel, /home2 istället för standard / home.

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

med-d kan du ange en hemkatalog med ett annat namn än användaren.

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

skelettkatalogen

– k instruerar den nya användarens nya hemkatalog att fyllas i med alla filer i katalogen/etc / skel. Dessa är vanligtvis skalkonfigurationsfiler, men de kan vara allt som en systemadministratör vill göra tillgänglig för alla nya användare.

Shell

argumentet-s kan användas för att ange skalet. Standard används om inget annat anges. I det följande definieras till exempel shell bash i standardkonfigurationsfilen, men Wally har begärt zsh.

$ 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

säkerhet

säkerhet är en viktig del av användarhanteringen, så det finns flera alternativ tillgängliga med kommandot useradd. Ett användarkonto kan ges ett utgångsdatum, i formuläret ÅÅÅÅ-MM-DD, med hjälp av-e-argumentet.

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

ett konto kan också inaktiveras automatiskt om lösenordet löper ut. – F-argumentet anger antalet dagar efter att lösenordet löper ut innan kontot är inaktiverat. Noll är omedelbart.

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

ett verkligt exempel

i praktiken kan flera av dessa argument användas när du skapar ett nytt användarkonto. Om jag till exempel behöver skapa ett konto för Perry kan jag använda följande kommando:

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

se avsnitten ovan för att förstå varje alternativ. Verifiera resultaten med:

$ 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)

några slutliga råd

useradd-kommandot är ett” måste-veta ” för alla UNIX-administratörer (inte bara Linux). Det är viktigt att förstå alla dess alternativ eftersom användarskapandet är något du vill få rätt första gången. Det innebär att ha en genomtänkt namnkonvention som innehåller ett dedikerat UID / GID—sortiment reserverat för dina användare i hela företaget, inte bara på ett enda system-särskilt när du arbetar i en växande organisation.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *