Hur lägger man till, ändrar och tar bort användare i Linux?

By rik

Hantering av användare är en central del av systemadministration i alla operativsystem.

Inom Linux-baserade system innebär detta att skapa nya konton, justera existerande – till exempel genom att ändra hemkatalog eller standardskal, spärra/låsa upp konton, samt radera användare.

Innan vi går in på kommandon och processer för dessa uppgifter, ska vi kort se hur användarkonton kategoriseras i Linux. Tänk på att kommandon som nämns fungerar i de flesta vanliga Linux-distributioner, om inget annat anges.

Användarkategorier

Rootanvändare

Rootanvändaren har administratörsbehörighet med fullständig kontroll över operativsystemet. Endast root kan vanligen installera, avinstallera eller uppdatera systemprogram och bibliotek. Detta konto har privilegier över hela systemet.

Rootanvändaren är alltså den med mest makt i systemet.

Specialanvändare

Dessa användare har inga inloggningsmöjligheter och saknar root-behörigheter. De utför olika specialiserade uppgifter, beroende på kontot.

Dessa skapas automatiskt vid installation av program. Exempel är bin, sync, lp, mail, operator och squid.

Vanliga användare

Vanliga användare har full tillgång enbart till sin egen arbetskatalog, normalt sett hemkatalogen. De har inte rätt att hantera systemet eller installera program. De kan inte utföra sådana uppgifter utan utökade behörigheter via sudo.

Lägga till användare

Debian/Ubuntu

I Debian- och Ubuntu-baserade system finns det flera sätt att lägga till användare via kommandoraden (CLI). `adduser` är ett Perl-skript som i sin tur använder kommandot `useradd`, vilket vi ska titta på senare.

För att lägga till en användare, vilket kräver privilegier, används `sudo` som prefix, följt av användarnamnet. Ytterligare detaljer kan anges när systemet frågar efter dem. Förutom användarnamn och lösenord är övrig information valfri. Vi kan verifiera att användaren skapats med kommandot `id`.

$ 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 (även Debian/Ubuntu)

Kommandot `useradd` fungerar på RHEL-baserade system och även i Ubuntu/Debian. Den enklaste syntaxen för att skapa en ny användare är:

$ sudo useradd <användarnamn>

Exempel:

$ sudo useradd janedoe

Kommandot `useradd` har flera tillval som kan anges vid skapandet av en användare, till exempel användar-ID (UID), grupp-ID (GID), standardskal och hemkatalog. Ett exempel följer:

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

Den nyskapade användaren kan verifieras med `id`:

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

Ändra användare

Det är vanligt att behöva ändra egenskaperna hos existerande användare baserat på organisationens behov, önskemål från användare eller systemmigreringar. De flesta av dessa egenskaper är lätta att justera, men det är viktigt att förstå hur det påverkar användarens miljö och filåtkomst.

Standardskal

Standardskalet är det kommandotolkningsprogram (CLI) som startas när en användare inleder en CLI-session lokalt eller via SSH. De flesta moderna system använder bash som standard, men det kan variera mellan Linux-distributioner eller användarmiljöer. Standardskalet för en användare kan ändras med:

$ sudo usermod -s <skal> <användarnamn>

Exempel:

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

I exemplet ovan har skalet ändrats från /bin/sh till /bin/bash för användaren janedoe.

Hemkatalog

Precis som standardskalet, kan en användares hemkatalog ändras till en annan plats med:

$ sudo usermod -d <ny_katalog_sökväg> <användarnamn>

I exemplet nedan har användaren janedoes hemkatalog ändrats till /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
$

Innan ändringen genomförs, kontrollera att den nya katalogen har rätt ägare och behörighet. Annars kan användaren få problem vid inloggning eller vid användning av den nya hemkatalogen.

Användar-ID

Användar-ID kan ändras med:

$ sudo usermod -u <ny_uid> <användarnamn>

Exempel:

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

Att ändra UID påverkar hur Linux filsystem mappar ägande och rättigheter till filer och kataloger. Se till att användarens hemkatalog och dess innehåll, och alla andra filer som användaren ägde tidigare (med det gamla UID), ändras till det nya UID. Om detta inte görs kan det leda till problem med CLI-sessioner och filåtkomst.

Standardgrupp

Standardgruppen är normalt sett användarens standardgrupp-ID som skapas när användaren skapas, om inte annat GID anges. Linux låter dig även justera standardgruppen med kommandot `usermod`. Syntaxen är:

$ sudo usermod -g <ny_gid eller gruppnamn> <användarnamn>

Exempel:

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

Återigen, se till att det nya grupp-ID:t är korrekt satt för användarens hemkatalog, innehåll och alla andra filer eller kataloger för att migrera äganderätten korrekt.

Lägga till/ta bort grupper

Utöver standardgruppen, kan en användare i Linux tillhöra sekundära grupper. Dessa grupper kan läggas till eller tas bort med kommandot `usermod`.

$ sudo usermod -a -G <grupp_id eller gruppnamn> <användarnamn>

Exempel:

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

För att ta bort en användare från en sekundär grupp, används kommandot `gpasswd` enligt följande:

$ sudo gpasswd -d <användarnamn> <gruppnamn>

Exempel:

$ 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

Fältet GECOS i `/etc/passwd` innehåller användarinformation eller kommentarer. Denna information kan ändras med:

$ sudo usermod -c <kommentar> <användarnamn>

Exempel:

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

Om kommentaren innehåller mellanslag, använd citattecken, som i exemplet.

Inloggningsnamn

Användarens inloggningsnamn kan ändras med kommandot `usermod` med flaggan `-l`:

$ sudo usermod -l <nytt_användarnamn> <gammalt_användarnamn>

Exempel:

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

Kom ihåg att uppdatera användarreferenser med det nya namnet där det används. Det nya användarnamnet ska anges även i kommandon som `id`.

Ta bort användare

En användare tas bort från Linux med kommandot `userdel`.

$ sudo userdel <användarnamn>

Exempel:

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

För att radera användarens hemkatalog och e-post, lägg till flaggan `-r`.

$ sudo userdel -r <användarnamn>

I Ubuntu-baserade system kan kommandot `deluser` användas för att ta bort en användare:

$ sudo deluser <användarnamn>

För att även ta bort hemkatalogen och e-posten, används:

$ sudo deluser --remove-home <användarnamn>

För detaljerad information och andra tillgängliga alternativ, se manualsidorna för de olika kommandona med:

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

Sammanfattning

Denna artikel har visat olika aspekter av användarhantering i ett Linux-system. Vi har tittat på kategorisering av användare samt hur man lägger till och tar bort dem. Vi har också behandlat olika alternativ för att justera parametrarna för existerande användare. Även om inte alla möjligheter gåtts igenom, täcker den här texten de flesta vanliga uppgifter som en systemadministratör möter dagligen.

Du kanske också vill läsa: Hur tar man bort filer och kataloger i Linux?