usermod
är ett kommandoradsverktyg som gör det möjligt att ändra en användares inloggningsinformation.
Denna artikel handlar om hur du använder kommandot usermod
för att lägga till en användare i en grupp, ändra en användares skal, inloggningsnamn, hemkatalog med mera.
usermod Kommando #
Syntaxen för usermod
-kommandot har följande form:
usermod USER
Endast root eller användare med sudo
åtkomst kan åberopa usermod
och ändra ett användarkonto. Vid framgång visar kommandot inget utdata.
Lägg till en användare till en grupp #
Det mest typiska användningsfallet för usermod
är att lägga till en användare till en grupp.
För att lägga till en befintlig användare till en sekundär grupp använder du -a -G
-alternativen följt av gruppens namn och användarnamnet:
usermod -a -G GROUP USER
Om du vill lägga till användaren till flera grupper samtidigt anger du grupperna efter -G
-alternativet separerade med ,
(kommatecken) utan mellanliggande blanksteg.
För att lägga till användaren linuxize
i gruppen games
skulle du till exempel köra följande kommando:
sudo usermod -a -G games linuxize
Använd alltid alternativet -a
(append) när du lägger till en användare i en ny grupp. Om du utelämnar alternativet -a
tas användaren bort från de grupper som inte anges efter alternativet -G
.
Om användaren eller gruppen inte finns kommer kommandot att varna dig.
Change User Primary Group #
För att ändra en användares primära grupp åberopar du kommandot usermod
med av alternativet -g
följt av gruppens namn och användarnamnet:
sudo usermod -g GROUP USER
I följande exempel ändrar vi användaren linuxize
s primära grupp till developers
:
usermod -g developers linuxize
Varje användare kan tillhöra exakt en primärgrupp och noll eller flera sekundära grupper.
Hantering av användarinformation #
För att ändra GECOS-informationen (användarens fullständiga namn) kör du kommandot med alternativet -c
följt av den nya kommentaren och det nya användarnamnet:
usermod -c "GECOS Comment" USER
Här är ett exempel som visar hur man lägger till ytterligare information till användaren linuxize:
usermod -c "Test User" linuxize
Den här informationen sparas i filen /etc/passwd
.
Ändra en användares hemkatalog #
På de flesta Linuxsystem är användarnas hemkataloger uppkallade efter användarens namn och skapas under katalogen /home
.
Om du av någon anledning vill ändra användarens hemkatalog anropar du kommandot usermod
med med alternativet -d
följt av den absoluta sökvägen till den nya hemkatalogen och användarens namn:
usermod -d HOME_DIR USER
Som standard flyttar kommandot inte innehållet i användarens hemkatalog till den nya. Om du vill flytta innehållet använder du alternativet -m
. Om den nya katalogen inte redan finns skapas den:
usermod -d HOME_DIR -m USER
Här är ett exempel som visar hur du ändrar hemkatalogen för användaren www-data
till /var/www
:
usermod -d /var/www www-data
Ändra en användares standardskal #
Standardskalet är det skal som körs när du loggar in i systemet. Som standard är standardskalet på de flesta Linuxsystem inställt på Bash Shell.
För att ändra användarens standardskal kör du kommandot med alternativet -s
följt av skalets absoluta sökväg och användarens namn:
usermod -s SHELL USER
I exemplet nedan ändrar vi användarens skal till Zsh:
sudo usermod -s /usr/bin/zsh linuxize
Du kan ta reda på vilka skal som finns tillgängliga på ditt system genom att visa /etc/shells
-filens innehåll.
Ändra en användares UID #
UID (user identifier) är ett nummer som tilldelas varje användare. Det används av operativsystemet för att hänvisa till en användare.
För att ändra användarens UID, åberopa kommandot med alternativet -u
följt av det nya UID:
usermod -u UID USER
Exemplet nedan visar hur man ändrar ”UID”-numret till ”1050”:
sudo usermod -u 1050 linuxize
UID:n för de filer som ägs av användaren och som finns i användarens hemkatalog, och användarens brevlådafil ändras automatiskt. Äganderätten till alla andra filer måste ändras manuellt.
Ändra ett användarnamn #
Och även om det inte är så ofta, kan du ibland vilja ändra namnet på en befintlig användare. Alternativet -l
används för att ändra användarnamnet:
usermod -l NEW_USER USER
I exemplet nedan byter vi namn på användaren linuxize
till lisa
till ”1050”:
sudo usermod -l linuxize lisa
När du ändrar användarnamnet kanske du också vill ändra användarens hemkatalog så att den återspeglar det nya användarnamnet.
Sätta användarens utgångsdatum #
Utgångsdatumet är det datum då användarkontot inaktiveras. För att ställa in användarens utgångsdatum använder du alternativet -e
:
sudo usermod -e DATE USER
Utgångsdatumet måste ställas in i formatet YYYY-MM-DD
.
För att till exempel inaktivera användaren linuxize
på 2022-02-21
skulle du köra följande kommando:
sudo usermod -e "2022-02-21" linuxize
För att inaktivera ett kontos utgångsdatum ställer du in ett tomt utgångsdatum:
sudo usermod -e "" linuxize
Använd kommandot chage -l
för att visa användarens utgångsdatum:
sudo chage -l linuxize
Last password change: Jul 24, 2018Password expires: neverPassword inactive: neverAccount expires: neverMinimum number of days between password change: 0Maximum number of days between password change: 99999Number of days of warning before password expires: 7
Utgångsdatumet lagras i filen /etc/shadow
.
Låsning och upplåsning av ett användarkonto #
Med alternativet -L
kan du låsa ett användarkonto:
usermod -L USER
Kommandona infogar ett utropstecken (!
) framför det krypterade lösenordet. När lösenordsfältet i /etc/shadow
-filen innehåller ett utropstecken kommer användaren inte att kunna logga in i systemet med hjälp av lösenordsautentisering. Andra inloggningsmetoder, t.ex. nyckelbaserad autentisering eller byte till användaren, är fortfarande tillåtna. Om du vill låsa kontot och inaktivera alla inloggningsmetoder måste du också ställa in utgångsdatumet till 1.
Följande exempel visar hur du låser användaren linuxize
:
sudo usermod -L linuxize
sudo usermod -L -e 1 linuxize
För att låsa upp en användare kör du usermod
med alternativet -U
:
usermod -U USER
Slutsats #
Vi har visat hur du använder kommandot usermod
för att ställa in information om användarkonton.