OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 6 – Vecka INNEHÅLL Hantering av användarkonton och användargrupper Användning av Sudo för delgering av programkörningsrättigheter
Användarhantering Varje person som använder ett Linux-system har ett eget användarkonto eller kort sagt en egen ”användare” En användare i ett datorsystem är egentligen bara ett sätt att gruppera och fördela ägandeskap och rättigheter till datorns resurser (såsom program och filer) Användarkontona ger bl.a. möjlighet åt användare att skydda sina filer Det finns dock en användare som kan göra allting, nämligen root (systemadministratorn)
Användarkonton Alla användare har två unika identifierare Användarnamn Användarnummer Användaren root har t.ex. alltid användarnumret 0
Användarinformation: /etc/passwd Användarinformation sparas i en fil som heter /etc/passwd och har 7 fält: Exempel på en rad i passwd-filen: karlssoj:x:1000:1000:jonnyburk,,,:/home/karlssoj:/bin/bash De intressantaste fälten i /etc/paswd förutom användarnamnet är lösenordet och grupphanteringen Om lösenordsfältet i /etc/passwd innehåller endast ett tecken, t.ex. ’x’ eller ’!’ betyder det att lösenordet för användaren finns i en skugglösenordsfil. Denna fil heter oftast /etc/shadow AnvändarnamnLösenordAnvändarnr.Gruppnr.personinfohemkatalogStartprogram
Användarinformation: /etc/passwd Mera förklaringar på lösenordsfältet: TeckenBetydelse xLösenordet finns i /etc/passwd ! *Det går inte att logga in Fältet tomtOperativsystemet kräver inget lösenord vid inloggning
Gruppinformation: /etc/group Det händer ofta att en flera användarkonton behöver dela på t.ex. samma filer Därför används i Linuxsystem inte enbart användarkonton utan man delar också in användare i olika grupper av användare Grupperna hanteras i filen /etc/gruop som består av fyra kolumner: En rad i filen /etc/group kan se t.ex. ut så här: kompisar:x:1006:Pelle,Lisa GruppnamnEv. lösenordGruppnummerAnvändare, som, tillhör, gruppen
Lösenordsfilen: /etc/shadow Orsaken till att man inte sparar lösenorden i samma fil som /etc/passwd är att man vill undvika att vanliga användare skall kunna se andra användares lösenord (/etc/passwd är läsbar för alla användare) Lösenord som sparas i /etc/shadow är krypterade Exempel på hur en rad i /etc/shadow kan se ut: karlssoj:!!:13732:0:99999:7::: Lösenorden i /etc/shadow är krypterade m.h.a. en hash-algoritm Lösenord som har krypterats med en hashalgoritm är omöjliga att dekryptera eftersom flera olika lösnord kan krypteras till samma lösenordsträng
Kryptering av lösenord (i /etc/shadow) Ett simpelt exempel på hash-kryptering är att alla bokstäver/tecken i ett lösenord byts ut mot siffror som motsvarar deras placering i alfabetet Andreas => Hash-kryptering => Om det ”hashade” lösenordet skrivs ihop får vi: Nu är det helt omöjligt att veta vilket ord eller vilken sekvens av bokstäver som hash-koden representerar! Lösenordskrypteringen i Linux är inte riktigt så här enkel men principen är den samma
Kommando för att skapa konto: adduser För att lägga till en användare och göra inställningar för en användare kan man använda programmet adduser från kommandotolken: adduser användarnamn I Ubuntu startar ovannämnda kommando upp en meny som tillåter användaren att ställa in olika inställningar för den ny användaren, bl.a. hemkatalog, kommando tolk, lösenord m.m. Alla inställningar man gör med adduser-kommandot sparas automatiskt i /etc/passwd och /etc/shadow Endast root kan skapa nya, eller ta bort användare
Kommandon för användar- och grupphantering KommandoBetydelse adduserSkapa ett användarkonto groupaddSkapa en användargrupp groupdelRadera en användargrupp usermodModifiera inställningar för ett användarkonto userdelTa bort ett användarkonto passwdÄndra lösenordet för ett användarkonto. Endast root kan byta lösenord på alla konton. En vanlig användare kan endast byta lösenord för sitt eget konto
Sudo Är ett program som tillåter ”vanliga” användare att utföra operationer som normalt endast tillåts av en systemadministrator (root). Används m.a.o för att delegera programkörningsrättigheter åt vanliga användare. De kommandon som en användare får utföra med sudo definieras i filen: /etc/sudoers /etc/sudoers kan editeras antingen direkt eller m.h.a programmet visudo Fördelen med att använda visudo är att den förhindrar att flera användare samtidigt editerar /etc/sudoers samt att den kontrollerar de direktiv som matas in i filen
Sudo: /etc/sudoers Grundsyntax: Användarnamn arbetsstation=(användare som kör kommandot) kommando(n) Exempel – tillåta användare esko att stänga av datorn esko ALL=(root) /sbin/shutdown Om man vill att esko inte skall behöva ge sitt lösenord vid anändning av sudo kan man sätta till NOPASSWD optionen: esko ALL=(root) NOPASSWD: /sbin/shutdown
Sudo: /etc/sudoers Man vill ge esko rätt att köra alla kommandon (på samma sätt som huvudanvändaren har ”by default”): esko ALL=(root) ALL Man kan på samma sätt ge fulla rättigheter åt en användargrupp: %larare ALL=(root) ALL Man kan också om man vill gruppera sudo-användare genom att använda alias: User_Alias GURUT = esko, petteri, kameli GURUT ALL=(root) ALL
Sudo: val av lösenord Sudo frågar vanligen efter lösenordet för den användare som utför ett kommando Det går också att ställa in sudo så att det alltid frågar efter en viss användares lösenord (vanligen root) genom att sätta till följande rad: Defaults rootpw i kombination med följande rad: ALL ALL=(ALL)ALL