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.
Indholdsfortegnelse
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.
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.
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.
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?