Intro Til Linux useradd-kommandoen

Å Legge til en bruker Er en av de mest grunnleggende øvelsene på et hvilket som helst datasystem; denne artikkelen fokuserer på hvordan du gjør Det på Et Linux-system.

Før jeg begynner, vil jeg nevne tre grunnleggende å huske på. Først, som med de fleste operativsystemer, Trenger Linux-brukere en konto for å kunne logge inn. Denne artikkelen dekker spesielt lokale kontoer, ikke nettverkskontoer som LDAP. For det andre har kontoer både et navn (kalt et brukernavn) og et nummer (kalt en bruker-ID). For det tredje er brukere vanligvis plassert i en gruppe. Grupper har også navn OG gruppe-ID.Som du forventer, Inkluderer Linux et kommandolinjeverktøy for å legge til brukere; det kalles useradd. Du kan også finne kommandoen adduser. Mange distribusjoner har lagt til denne symbolske lenken til useradd-kommandoen som et spørsmål om bekvemmelighet.

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

La oss ta en titt på useradd.

Merk: standardverdiene beskrevet i denne artikkelen gjenspeiler de i Red Hat Enterprise Linux 8.0. Du kan finne små forskjeller i disse filene og visse standarder på Andre Linux-distribusjoner eller Andre Unix-operativsystemer som FreeBSD eller Solaris.

Standard oppførsel

den grunnleggende bruken av useradd er ganske enkel: en bruker kan legges bare ved å gi sitt brukernavn.

$ sudo useradd sonny

i dette eksemplet oppretter useradd-kommandoen en konto som heter sonny. En gruppe med samme navn er også opprettet, og sonny er plassert i den for å bli brukt som primærgruppe. Det finnes andre parametere, for eksempel språk og skall, som brukes i henhold til standarder og verdier som er angitt i konfigurasjonsfilene / etc / default / useradd og/etc / login.defs. Dette er vanligvis tilstrekkelig for et enkelt, personlig system eller et lite, en-server forretningsmiljø.

mens de to filene ovenfor styrer oppførselen til useradd, lagres brukerinformasjon i andre filer som finnes i / etc-katalogen, som jeg vil referere til i hele denne artikkelen.

skygge

Fil Beskrivelse Felt (fet—satt av useradd)
passwd lagrer brukerkontodetaljer brukernavn:ubrukt:uid:gid:kommentar:homedir:shell
lagrer brukerkontosikkerhetsdetaljer brukernavn:passord:lastchange:minimum:maksimum:advarsel:inaktiv:utløper:ubrukt
gruppe lagrer gruppedetaljer gruppenavn:ubrukt:gid:medlemmer

Tilpassbar oppførsel

kommandolinjen tillater tilpasning for tider når en administrator trenger finere kontroll, for eksempel for å angi en brukers ID-nummer.

Bruker-og gruppe-ID-numre

som standard prøver useradd å bruke samme nummer for bruker-ID (UID) og primær gruppe-ID( GID), men det er ingen garantier. SELV OM DET ikke er nødvendig FOR UID og GID å matche, er det enklere for administratorer å administrere dem når de gjør det.

jeg har bare scenariet å forklare. Anta at jeg legger til en annen konto, denne gangen For Timmy. Sammenligning av de to brukerne, sonny og timmy, viser at både brukere og deres respektive primære grupper ble opprettet ved hjelp av getent-kommandoen.

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

Dessverre samsvarer ikke brukerens UID eller primær GID. Dette er fordi standard virkemåte er å tilordne neste tilgjengelige UID til brukeren og deretter forsøke å tilordne det samme nummeret til primærgruppen. Hvis dette nummeret allerede er brukt, tilordnes neste tilgjengelige GID til gruppen. For å forklare hva som skjedde, hypoteser jeg at EN gruppe MED GID 1001 allerede eksisterer og skriver inn en kommando for å bekrefte.

$ getent group 1001
book:x:1001:alan

gruppeboken MED ID 1001 har forårsaket At GIDs er av med en. Dette er et eksempel der en systemadministrator må ta mer kontroll over brukerskapingsprosessen. For å løse dette problemet må jeg først finne neste tilgjengelige bruker-og gruppe-ID som vil samsvare. Kommandoene getent group og getent passwd vil være nyttig for å bestemme neste tilgjengelige nummer. Dette tallet kan sendes 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 annen god GRUNN til å spesifisere ID er for brukere som vil få tilgang til filer på et eksternt system ved Hjelp Av Network File System (NFS). NFS er enklere å administrere når alle klient – og serversystemer har samme ID konfigurert for en gitt bruker. Jeg dekker dette litt mer detaljert i min artikkel om bruk av autofs for å montere NFS-aksjer.

Mer tilpasning

Svært ofte må andre kontoparametere angis for en bruker. Her er korte eksempler på de vanligste tilpasningene du kanskje må bruke.

Kommentar

kommentaralternativet er et felt i ren tekst for å gi en kort beskrivelse eller annen informasjon ved hjelp av-c-argumentet.

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

Grupper

en bruker kan tildeles en primærgruppe og flere sekundære grupper. Argumentet-g angir navnet ELLER GID for primærgruppen. Hvis det ikke er angitt, oppretter useradd en primærgruppe med brukerens samme navn (som vist ovenfor). Argumentet-G (store bokstaver) brukes til å sende en kommaseparert liste over grupper som brukeren vil bli plassert i; disse er kjent som sekundære 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)

hjemmekatalog

standard oppførsel av useradd er å opprette brukerens hjemmekatalog i /home. Imidlertid kan ulike aspekter av hjemmekatalogen overstyres med følgende argumenter. -B setter en annen katalog der brukerhjem kan plasseres. For eksempel, / home2 i stedet for standard / home.

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

– d lar deg angi en hjemmekatalog med et annet navn enn brukeren.

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

skjelettkatalogen

– k instruerer at den nye brukerens nye hjemmekatalog skal fylles ut med filer i /etc/skel-katalogen. Disse er vanligvis shell konfigurasjonsfiler, men de kan være alt som en systemadministrator ønsker å gjøre tilgjengelig for alle nye brukere.

Shell

– s argumentet kan brukes til å spesifisere skallet. Standard brukes hvis ingenting annet er angitt. For eksempel, i det følgende, er shell bash definert i standardkonfigurasjonsfilen, Men Wally har bedt om 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

Sikkerhet

Sikkerhet er en viktig del av brukeradministrasjonen, så det er flere alternativer tilgjengelig med kommandoen useradd. En brukerkonto kan gis en utløpsdato, i skjemaet YYYY-MM-DD, ved hjelp av-e argumentet.

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

en konto kan også deaktiveres automatisk hvis passordet utløper. Argumentet-f angir antall dager etter at passordet utløper før kontoen er deaktivert. Null er umiddelbar.

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

et ekte eksempel

i praksis kan flere av disse argumentene brukes når du oppretter en ny brukerkonto. For eksempel, hvis Jeg trenger å opprette en konto For Perry, kan jeg bruke følgende kommando:

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

Se avsnittene ovenfor for å forstå hvert alternativ. Bekreft resultatene 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)

Noen siste råd

useradd-kommandoen er en «må-vite» for Enhver unix (ikke Bare Linux) administrator. Det er viktig å forstå alle sine alternativer siden brukeropprettelse er noe du vil få riktig første gang. Dette betyr å ha en gjennomtenkt navnekonvensjon som inkluderer en dedikert UID / GID-serie reservert for brukerne dine i hele bedriften, ikke bare på et enkelt system-spesielt når du jobber i en voksende organisasjon.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *