Sådan tilføjes, ændres og fjernes bruger i Linux?

Brugerstyring i ethvert operativsystem er en af ​​de grundlæggende rutineopgaver for en systemadministrator.

For et Linux-baseret OS involverer det normalt at oprette brugerkonti, ændre eksisterende konti som at ændre deres hjemmemappe, standardskal, låse/oplåse en eller flere konti og fjerne brugerkonti.

Før vi undersøger kommandoerne og processerne til at udføre disse opgaver, lad os kort dykke ned i, hvordan brugerkonti kan klassificeres i Linux. Bemærk også, at medmindre det er udtrykkeligt angivet, vil givne kommandoer fungere i de fleste almindelige Linux-distributioner.

Brugertyper

Root bruger

Rodbrugeren er administratoren af ​​OS med alle tilladelser til at udføre operationer. Normalt er det kun root, der kan installere/afinstallere eller opdatere grundlæggende systemprogrammer og biblioteker. Det er den eneste brugerkonto med systemdækkende rettigheder.

Så root-brugeren er den mest magtfulde bruger af systemet.

Særlig bruger

Det er brugere uden logins. De har ikke alle root-brugerens privilegier. Afhængigt af kontoen påtager de sig forskellige specialiserede roller.

Disse oprettes automatisk på tidspunktet for enhver applikationsinstallation. bin, sync, lp, mail, operator, squid er nogle af eksemplerne på specielle brugere.

Almindelige brugere

Almindelige brugere har kun fulde rettigheder i deres arbejdsmappe, normalt deres hjemmemappe. De har ikke privilegier til at administrere systemet eller installere softwaren. De kan ikke udføre disse opgaver uden at have særlige privilegier via sudo.

Tilføjelse af bruger

Debian/Ubuntu

På et Debian- eller Ubuntu-baseret system er der et par muligheder for at tilføje brugere fra CLI. Den første kommando er adduser, som er et Perl-script og bruger useradd-kommandoen i backend, hvis brug vi vil se senere.

Da tilføjelse af en bruger er en privilegeret opgave, skal du bruge sudo som præfiks og brugernavn som argument. Andre detaljer kan angives som bedt om. Bortset fra brugernavn og adgangskode er resten af ​​detaljerne valgfrie. Vi kan verificere, at brugeren er blevet oprettet ved at bruge id-kommandoen.

$ sudo adduser johndoe
Adding user `johndoe' ...
Adding new group `johndoe' (1003) ...
Adding new user `johndoe' (1003) with group `johndoe' ...
Creating home directory `/home/johndoe' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for johndoe
Enter the new value, or press ENTER for the default
        Full Name []: John Doe
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
$
$ id johndoe
uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe)
$

CentOS/RHEL/Fedora (inklusive Debian/Ubuntu)

Den næste kommando, useradd, vil fungere på tværs af RHEL-baserede OS-distributioner såvel som fungerer lige godt på Ubuntu/Debian-værter. Den enkleste syntaks (uden ekstra muligheder) til at oprette en ny bruger er:

$ sudo useradd <username>

Eksempel:

$ sudo useradd janedoe

Useradd-kommandoen understøtter flere muligheder, der kan specificeres, mens brugeren oprettes, de mest almindelige er bruger-id (UID), gruppe-id (GID), standard shell og hjemmemappe osv. Et sådant eksempel er givet nedenfor:

$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe

Du kan bekræfte den nyoprettede bruger ved at bruge id-kommandoen:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

Ændring af bruger

Man er ofte nødt til at ændre nogle egenskaber for eksisterende brugere baseret på organisationskrav, brugeranmodninger eller systemmigreringer. De fleste af disse egenskaber er nemme at ændre, selvom vi er nødt til at sikre, hvordan det vil påvirke brugermiljøet og adgangen til filer, der ejes eller tilgås af brugeren.

  Sådan installeres Bither på Linux

Standard Shell

Standard-skallen er den CLI-shell, der oprettes, når en bruger starter en ny CLI-session enten lokalt eller via SSH. De fleste moderne systemer har en standard bruger Bash, selvom det kan variere baseret på Linux-distribution eller brugerens miljø. For at ændre standardskallen for en bruger, brug:

$ sudo usermod -s <shell> <username>

Eksempel:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/sh
$ sudo usermod -s /bin/bash janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$

Som du kan se i ovenstående output, er skallen blevet ændret fra /bin/sh til /bin/bash for brugeren janedoe.

Hjemmekatalog

Ligesom standard shell kan en brugers hjemmemappe ændres til en anden placering ved hjælp af:

$ sudo usermod -d <new_directory_path> <username>

I eksemplet nedenfor er brugerens hjemmemappe for brugeren janedoe blevet ændret til /data/janedoe:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$ sudo usermod -d /data/janedoe janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$

Før du skifter, skal du sikre dig, at den nye mappe har det rigtige ejerskab og tilladelser. Ellers kan brugeren få problemer under login eller arbejde i den nye hjemmemappe.

  Sådan installeres RawTherapee-billedbehandlingsværktøjet på Linux

bruger ID

Du kan ændre bruger-id’et for en eksisterende bruger ved at bruge:

$ sudo usermod -u <new_uid> <username>

Eksempel:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -u 1010 janedoe
$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$

Igen ændrer ændring af UID, hvordan Linux-filsystem kortlægger ejerskab og tilladelse til en fil eller et bibliotek. Sørg for, at brugerens hjemmemappe og dens indhold og alle andre filer hvor som helst i systemet, som oprindeligt ejes af brugeren (med gammelt UID), ændres til UID kortlagt. Hvis du ikke gør det, kan det forårsage problemer i CLI-sessionen og filadgang for brugeren.

Standardgruppe

Standardgruppen er normalt brugerens standardgruppe-id, som oprettes under brugeroprettelse, medmindre et andet GID er angivet. Linux giver dig mulighed for at ændre standardgruppen for en bruger også ved hjælp af usermod-kommandoen. Her er syntaksen, der skal bruges:

$ sudo usermod -g <new_gid or group_name> <username>

Her er et eksempel:

$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$ sudo usermod -g 1001 janedoe
$ getent passwd janedoe
janedoe:x:1010:1001::/data/janedoe:/bin/bash
$

Igen skal du sørge for, at det nye gruppe-id er indstillet på brugerens hjemmemappe, indhold og alle andre filer eller mapper, der er relevante for korrekt migrering af deres ejerskabstilladelser.

Tilføjelse/fjernelse af grupper

Udover standardgruppen kan en bruger i Linux være en del af sekundære grupper. Vi kan altid tilføje eller fjerne yderligere grupper, som en bruger tilhører ved hjælp af kommandoen usermod.

$ sudo usermod -a -G <group_id or group_name> <username>

Eksempel:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -a -G docker janedoe
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$

Tilsvarende, for at fjerne en bruger fra en af ​​de sekundære grupper, brug gpasswd-kommandoen som vist nedenfor:

$ sudo gpasswd -d <username> <groupname>

Eksempel:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$ sudo gpasswd -d janedoe docker
Removing user janedoe from group docker
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

GECOS-kommentar

GECOS-feltet i /etc/passwd indeholder brugeroplysninger eller kommentarer. Vi kan ændre disse oplysninger for en eksisterende bruger som:

$ sudo usermod -c <comment> <username>

Eksempel:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -c "Jane Doe - System Admin" janedoe
$ getent passwd janedoe
janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash
$

Bemærk venligst, at hvis din kommentar eller brugeroplysninger indeholder mellemrum, skal du omslutte dette felt i anførselstegn som i ovenstående eksempel.

  Sådan får du adgang til dit pCloud-drev på Linux

Login-navn

Brugerens login-navn kan også ændres ved hjælp af usermod-kommandoen ved at bruge -l flag:

$ sudo usermod -l <new_username> <old_username>

Eksempel:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -l jane_doe janedoe
$ id jane_doe
uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe)
$

Husk at opdatere brugerreferencer i henhold til nyt navn, uanset hvor det bruges. Selv i kommandoer som id, skal det nye brugernavn angives.

Fjerner bruger

En bruger kan fjernes fra Linux ved hjælp af kommandoen userdel.

$ sudo userdel <username>

Eksempel:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo userdel janedoe
$ id janedoe
id: ‘janedoe’: no such user
$

For at fjerne en bruger sammen med dens hjemmemappe og mailspool, skal du også tilføje -r flag.

$ sudo userdel -r <username>

Specifikt for Ubuntu-baserede systemer kan du også bruge en deluser-kommando for at fjerne en bruger:

$ sudo deluser <username>

Tilsvarende, for også at fjerne hjemmebiblioteket og mailspoolen, skal du bruge:

$ sudo deluser --remove-home <username>

For detaljerede oplysninger og andre understøttede muligheder henvises til hovedsiden med forskellige kommandoer ved hjælp af:

$ man adduser
$ man useradd
$ man usermod
$ man deluser
$ man userdel

Konklusion

Denne artikel viste forskellige aspekter af brugeradministration i et Linux-system. Dette inkluderer en forklaring af forskellige kategorier af brugere, og hvordan man tilføjer og fjerner dem. Det dækker også forskellige muligheder, der hjælper med at ændre parametrene for en eksisterende bruger. Selvom det ikke dækker alle muligheder understøttet af forskellige kommandoer, dækker det en masse almindelige administrationsopgaver, som en systemadministrator vil støde på i det daglige arbejde.

Du kan også være interesseret i at læse: Hvordan fjerner man filer og mapper i Linux?