- Root-användaren är superanvändaren av Linux, med total kontroll över systemet och inga behörighetsbegränsningar.
- Moderna distributioner prioriterar användningen av sudo och su för att få tillfälliga privilegier istället för att logga in direkt som root.
- Slarvig användning av root kan leda till dataförlust, startfel och allvarliga säkerhetsproblem.
- Att aktivera, blockera och granska root-åtkomst, i kombination med goda sudo-metoder, är avgörande för säker administration.
Om du har använt Linux en kort tid har du förr eller senare stött på det berömda root-användaren, superanvändaren som kan göra och ångra saker i systemet praktiskt taget utan begränsningarDet är det där mystiska kontot som dyker upp i handledningar, det som låter dig installera paket, justera känsliga inställningar eller fixa ett system som inte startar... men som också kan förstöra din maskin med ett enda felstavat kommando.
I de flesta moderna distributioner, särskilt Ubuntu och dess derivater, är det inte längre vanligt att logga in direkt som root. Istället är den föredragna metoden att använda en annan användare. Använd kommandon som sudo och su för att få administratörsbehörighet endast när det behövsDetta minskar riskerna och lämnar spår i systemloggarna. Ändå är en god förståelse för vad root är, hur det skiljer sig från sudo och su, när man använder dem, hur man inaktiverar kontot och hur man återställer lösenordet avgörande om du vill navigera i Linux med lätthet.
Vad är root-användaren i Linux och varför är den så speciell?
I alla Unix-liknande system (Linux, BSD, macOS, etc.) finns det en enda superanvändare med en mycket tydlig roll: root är kontot med UID 0 och absolut auktoritet över alla filer, processer och systemresurserDet finns inga konventionella behörighetsbegränsningar; om root vill läsa, ändra eller ta bort något, så gör de det.
Från det här kontot kan du Installera och avinstallera program, uppdatera systemet, redigera konfigurationsfiler i /etc, hantera tjänster, skapa och ta bort användare, formatera diskar eller ändra viktiga behörigheterDet motsvarar Windows "Administratör"-användaren, men med ännu större möjlighet att komma åt systemets interna funktioner utan begränsningar.
Av denna anledning väljer många distributioner som Ubuntu Tillåt inte direkt root-inloggning efter installationenIstället skapas ett vanligt konto (som tillhör gruppen administratörer) och sudo används för att utföra specifika administrativa uppgifter, vilket minskar riskexponeringen.
I andra distributioner, som Debian i sin klassiska konfiguration, är det vanligt att definiera ett lösenord för root under installationen, så att Superanvändaren kan användas direkt i konsolen eller för vissa mycket specifika uppgifter.även om själva systemet också uppmuntrar användningen av sudo.
Förutom root- och "mänskliga" användare använder Linux även systemanvändare av tjänsttypen (daemon), med mycket begränsade behörigheterDessa specialanvändare kör processer som webbservrar, databaser eller systemdaemoner, så att en säkerhetsbrist i en tjänst inte automatiskt ger absolut kontroll över systemet, vilket skulle hända om allt kördes under root.
Typer av användare i Linux och hur man tar reda på vem man är
Även om det i praktiken kan verka som att det finns många typer av konton, är uppdelningen på behörighetsnivå mycket tydlig: roten på ena sidan och "resten" på den andraAlla användare som inte har UID 0 är tekniskt sett en icke-privilegierad användare, även om de kan ha vissa extra behörigheter tack vare sudo.
De vanliga arbetskontona är vanliga användare med begränsade behörigheter på filsystemetDe kan hantera sina personliga filer, köra program, använda nätverket och, om de är i lämplig grupp, anropa sudo för att få ytterligare behörigheter för specifika uppgifter.
Rotsuperanvändaren är globalt administrationskontoDen är inte avsedd för daglig användning, utan snarare för underhåll, avancerad konfiguration eller återställningsåtgärder. Därför gör många distributioner direkt åtkomst till det här kontot lite mer komplicerat, för att undvika överraskningar för nybörjare och begränsa effekterna av mänskliga fel.
Om du någonsin är osäker på vilken användare du arbetar som i en terminal kan du titta på Shell-prompt: när det slutar på $ använder du ett vanligt konto, och när det slutar på # använder du rootDu kan också köra kommandot whoami eller kontrollera den numeriska identifieraren med den -uOm du får "root" eller "0" är du i superanvändarläge.
Dessutom visar uppmaningen vanligtvis användarnamnet, datornamnet, den aktuella katalogen och symbolen $ eller #Till exempel, något som alumno@equipo:/home/alumno$ indikerar en vanlig användare, medan root@equipo:/root# Det återspeglar en direkt administrationssession.
root, sudo och su: vad var och en gör och när man använder dem
I vardagsbruk skriver vi vanligtvis inte root-lösenordet hela tiden. Istället väljer de flesta moderna distributioner Höj tillfälligt privilegier från ett vanligt konto med hjälp av verktyg som sudo och suÄven om de ibland används omväxlande i samtal, fyller de olika roller och det är viktigt att tydligt skilja dem åt.
Kommandot sudo (superanvändare gör) tillåter en behörig användare att utföra ett specifikt kommando med behörigheter från en annan användare, vanligtvis rootGenom att göra det registreras vad som har körts, vem som startade det och när, vilket lämnar en post i systemets säkerhetsloggar.
För sin del, din (ersättningsanvändare) Den är designad för ändra användaridentitet inom samma terminalsessionOm du anropar den utan parametrar kommer den vanligtvis att försöka byta till root (och be om lösenordet). Om du anger ett användarnamn växlar du till det kontot, med dess behörigheter och miljö.
Hur sudo fungerar och varför det är så viktigt
I system som Ubuntu, som tillhör gruppen sudo (eller ”admin” i äldre versioner) betyder att det här kontot kan kör kommandon som root genom att ange ditt eget lösenordutan att behöva veta superanvändarens lösenord. Reglerna som styr vad varje person kan göra definieras i filen / etc / sudoers, som redigeras säkert med kommandot visudo.
För att använda det, placera helt enkelt ordet före det. sudo före kommandot som kräver förhöjda rättigheterTill exempel görs paketinstallation vanligtvis så här:
sudo apt install vlc
I det här fallet körs apt som root, skriver till systemkataloger som /usr eller /var och loggar ändringar i paketdatabasen, även om du fortfarande är inloggad med ditt vanliga användarnamn. När beställningen är slutförd återgår du automatiskt till dina vanliga behörigheter..
Dessutom implementerar sudo en liten "nådens tid"Efter att du har angett ditt lösenord kan du köra `sudo` igen i några minuter utan att bli ombedd att göra det. Detta snabbar upp administrationen, men introducerar också en liten sårbarhet om någon får åtkomst till din dator under den tiden. Om du vill skärpa denna policy kan du ställa in respitperioden till noll genom att redigera `sudoers` med:
Defaults:ALL timestamp_timeout=0
På detta sätt, Varje gång du använder sudo måste du autentisera dig igen, något mer tråkigt men säkrare i känsliga miljöer eller miljöer med flera användare.
`su`-kommandot och det fullständiga bytet till ett annat konto
Kommandot "su", å andra sidan, Den kör inte ett enda kommando, utan öppnar istället ett nytt skal under en annan användares identitet.Om det åberopas "utan våld":
su
Systemet antar att du vill byta till root, och därför Den kommer att be dig om superanvändarlösenordet.Om inloggningen lyckas kommer du att se att kommandosymbolen ändras till #, och från och med det ögonblicket kommer alla kommandon du kör att utföras med root-behörighet tills du loggar ut. avsluta.
Du kan också ange en specifik användare:
su nombreusuario
Detta är väldigt praktiskt när du hanterar tjänster som körs med sina egna konton (t.ex. postgres, www-data, etc.) och du behöver fungera som dem utan att stänga din huvudsessionÅterigen, när du är klar, återgår du till föregående användare genom att använda exit.
På system där root är låst eller saknar lösenord (som många Ubuntu-installationer) kommer du inte att kunna växla direkt till det kontot med `su`. I dessa fall är den vanliga metoden kedjesvett och hans, till exempel:
sudo su o sudo -i
Med dessa kommandon anger du ditt användarlösenord (inte root-lösenordet) och får ett administrativt skal med en miljö som liknar en direkt root-inloggning. Detta är mycket praktiskt om du ska utföra flera åtgärder i rad, men också farligare, så det är lämpligt att logga ut från root-sessionen så snart du är klar.
När är det vettigt att använda root, sudo eller su?
Teorin är bra, men i vardagen är det som spelar roll vilket verktyg man ska använda i varje specifik situation för att arbeta snabbt utan att riskera systemetSom en allmän regel, använd sudo för specifika kommandon när det är möjligt och undvik ihållande rotskal; om du vill fördjupa dig i När och varför man ska undvika svett, kolla in den guiden.
Till exempel för installera eller uppdatera programvara I Debian- eller Ubuntu-baserade distributioner är den vanliga praxisen:
sudo apt updatesudo apt upgradesudo apt install gparted
I dessa scenarier tillför det inte mycket att logga in permanent som root. Du får viss bekvämlighet, men du multiplicerar riskerna med att ta bort eller ändra något du inte borde..
Du kommer också att använda sudo när redigera systemkonfigurationsfiler, till exempel:
sudo nano /etc/hostssudo nano /etc/ssh/sshd_config
På så sätt körs endast editorn med superanvändarbehörigheter, och när du stänger den återgår du till din normala behörighetsnivå.
Däremot kan `su` (eller `sudo -i`) vara användbart när Du kommer att kedja ihop många administrativa operationer Att lägga till `sudo` före varje kommando skulle vara irriterande. Till exempel när man utför komplexa underhållsuppgifter, hanterar flera konton, arbetar med partitioner etc. Ändå är det bra att begränsa tiden du spenderar i det läget och avsluta så snart du är klar.
En mycket praktisk detalj är att om du är osäker på om du är root eller inte kan du köra whoami o den -uOm du får "root" eller "0" är det dags att vara extremt försiktig innan du skriver något destruktivt.
Visa asterisker när du skriver lösenordet med sudo
Som standard är många distributioner (inklusive Ubuntu) De visar inga tecken när du skriver lösenordet i konsolen.Inga punkter eller asterisker. Detta görs för att undvika att visa nyckellängden, även om många användare i praktiken tycker att det är obekvämt eftersom de inte har någon visuell bekräftelse på att de skriver.
Under en tid nu har sudo erbjudit ett alternativ som heter pwfeedback Detta gör att asterisker visas på skärmen när lösenordet anges. Vissa nyare Ubuntu-versioner har börjat aktivera detta, men du kan aktivera det själv på vilket system som helst genom att ändra sudo-konfigurationen:
1. Öppna redigeraren för säker konfiguration med:
sudo visudo
2. Inuti filen som öppnas (vanligtvis /etc/sudoers), lägg till en rad som denna:
Defaults pwfeedback
3. Spara och stäng. Från och med det ögonblicket, Varje tecken du skriver när du anger sudo-lösenordet kommer att representeras av en asterisk.Om du senare föredrar att återgå till det klassiska beteendet (utan visuellt eko), ta helt enkelt bort den raden och spara filen igen med Visudo.
Denna anpassning påverkar inte sudos kryptografiska säkerhet, men den gör det. Det kan förbättra användbarheten för de som föredrar att få visuell bekräftelse på vad de skriver.särskilt på tangentbord utan bakgrundsbelysning eller när man skriver från fjärrterminaler.
Verkliga risker med att använda root slarvigt
Root-kontot är lika kraftfullt som det är farligt. Linux är utformat med skyddslager för att göra det svårt för en vanlig användare att av misstag bryta sig in i systemet, men När man ökar privilegierna försvinner dessa hinder och varje försummelse kan förvandlas till en katastrof..
En första allvarlig risk är oavsiktlig radering av viktiga filer eller katalogerKommandon som rm -rf / o rm -rf /* De är kända just för att de, om de körs som root, kan radera praktiskt taget allt innehåll i filsystemet på några sekunder. Men det är inte nödvändigt att gå till den extremen: helt enkelt skriva fel sökväg eller lämna en variabel tom, till exempel:
rm -rf $directorio/*
Om `$directory` inte är definierat som du förväntade dig, kan kommandot peka till en helt annan plats än du avsåg. Som root kommer systemet inte att ge dig så mycket problem, och när kommandot är slutfört, Återhämtning är oftast mycket svår eller helt enkelt omöjlig. utan säkerhetskopior eller kriminaltekniska verktyg.
En annan viktig fara är körning av skadlig programvara eller skript med fullständiga rättigheterAtt ladda ner ett installationsprogram från en okänd webbplats och köra det med sudo eller från ett root-shell ger koden absolut kontroll: den kan installera rootkits, bakdörrar, keyloggers, modifiera kärnan eller gömma sig djupt inne i systemet. Ofta, när problemet upptäcks, har angriparen redan varit inne ett tag.
Du måste också vara försiktig när ändra viktiga filbehörigheter med chmod eller chownEn order som chmod 000 /etc Felaktig hantering av /boot, GRUB-bootloadern eller /etc/passwd kan göra att systemet inte kan starta. I sådana fall garanterar inte ens uppstart från en LiveCD en enkel reparation; i produktionsmiljöer kan professionella återställningstjänster krävas.
Slutligen, ur ett revisionsperspektiv, eliminerar inloggning direkt som root mycket spårbarhet. När du använder sudo registreras varje kommando tillsammans med användaren som utförde det.Om allt görs som root utan att använda sudo, kommer loggarna bara att säga att "root gjorde något", men inte vem som satt bakom tangentbordet, vilket komplicerar utredningar och efterlevnad av säkerhetsföreskrifter.
Aktivera, inaktivera och lås root-kontot
Beroende på din distribution kan root-kontot vara Aktiverad med lösenord, låst eller helt enkelt utan tilldelad nyckelI Ubuntu-liknande system är root vanligtvis inaktiverat för direkt inloggning, medan i andra distributioner definieras ett lösenord under installationen.
Om root-kontot är låst på din dator kan du aktivera det från en användare med sudo-behörighet genom att köra:
sudo passwd root
Systemet kommer först att be om ditt användarlösenord och sedan att du anger och bekräftar det nya root-lösenordet. Från och med det ögonblicket, Kontot aktiveras och du kan logga in som superanvändare i virtuella terminaler eller, i vissa fall, även i det grafiska gränssnittet.Även om det senare är mycket olämpligt.
Om du bestämmer dig för att du inte längre vill att root-åtkomst ska vara tillgänglig kan du låsa kontot igen med:
sudo passwd -l root
Parametern -l blockerar åtkomst genom att associera ett ogiltigt lösenord, så att Du kan inte logga in som root, varken med `su` eller på inloggningsskärmen.Auktoriserade användare kommer dock fortfarande att kunna använda sudo för att administrera systemet, så du kommer inte att bli utan sätt att utföra underhållsuppgifter.
Vissa distributioner erbjuder också möjligheten att inaktivera och återaktivera root med kombinationer som sudo passwd -dl root o sudo passwd -u root för att låsa upp den. I vilket fall som helst, Den allmänna rekommendationen är att hålla root-låst och alltid arbeta med sudo förutom i mycket specifika fall., såsom räddnings- eller återställningsmiljöer för allvarligt skadade system.
Återställ eller ändra root-lösenordet
Det kan hända att oavsett om du har tappat bort ditt root-lösenord, inaktiverat det eller helt enkelt behöver omdefiniera det på en server vars ursprungliga konfiguration nu är bortglömd. Linux erbjuder flera sätt att göra detta, beroende på om systemet startar eller om du behöver använda en extern enhet.
Om din maskin fortfarande når GRUBs starthanterare är ett mycket vanligt alternativ att utnyttja återställningslägeGenom att välja den här varianten i den avancerade menyn startar systemet en reducerad miljö och erbjuder dig ett alternativ att hämta en konsol med superanvändarbehörigheter.
Väl inne i det skalet är det första man ska göra Återmontera filsystemet med skrivbehörigheteftersom det ofta är i skrivskyddat läge:
mount -o rw,remount /
Sedan kan du köra standardkommandot för att ange ett nytt lösenord:
passwd root
Ange den nya nyckeln två gånger, och för att säkerställa att ändringarna skrivs till disken, använd:
syncreboot
Vid omstart, Root-kontot kommer att ha lösenordet du just angav.så att du kan använda den där det behövs (helst sparsamt och med försiktighet).
Om systemet inte ens startar kan du använda en LiveCD eller LiveUSB från en LinuxdistributionTill exempel Ubuntu. Starta från det mediet, välj alternativet "Försök" utan att installera och öppna en terminal. Vanligtvis blir du först root i livemiljön med:
sudo su
Sedan behöver du hitta partitionen där systemet som ska repareras är installerat, med hjälp av något i stil med:
fdisk -l
När du har identifierat rätt enhet (till exempel /dev/sda1), montera den i en arbetsmapp:
mkdir /mnt/recovermount /dev/sda1 /mnt/recover
Nästa steg är att "ändra roten" av miljön till den monterade partitionenså att passwd påverkar det installerade systemet och inte livemiljön:
chroot /mnt/recover
Därifrån kan du köra:
passwd root
för att ange ett nytt lösenord. Efter att ha avslutat chroot och startat om, Det ursprungliga systemet startar med de uppdaterade superanvändaruppgifterna.Det är en mycket kraftfull manöver för att rädda låsta maskiner, men den belyser också varför det är viktigt att skydda fysisk åtkomst och uppstart från externa medier på kritiska servrar.
Root-åtkomst i Ubuntu och säkerhetspolicyer
Ubuntu och många av dess derivater (Xubuntu, Kubuntu, Linux Mint, etc.) har byggt sin säkerhetsmodell på en mycket tydlig idé: root finns, men den används nästan alltid indirekt via sudoDetta har flera praktiska och säkerhetsmässiga fördelar.
I en standardinstallation, Inget lösenord är definierat för rootDetta förhindrar att användare loggar in direkt med detta konto på både TTY-terminaler och den grafiska miljön. Istället läggs den första användaren som skapas under installationen till i sudo-gruppen, och allt administrativt arbete utförs genom att utöka behörigheter från det kontot.
Detta tillvägagångssätt minskar anfallsytan Det skyddar mot brute-force-attacker på root-kontot (till exempel via SSH) och minimerar risken för att mänskliga fel får katastrofala konsekvenser, eftersom det tvingar administratören att tänka efter varje gång de använder sudo.
I mycket specifika sammanhang (laboratorier, räddningsmiljöer, mycket isolerade maskiner) kan det vara motiverat. tilldela ett lösenord till root med sudo passwd root och tillåta direkt inloggning, men det är bäst att betrakta detta som en tillfällig åtgärd. När problemet är löst är det bättre att låsa kontot igen och fortsätta arbeta med sudo.
Dessutom, för uppgifter som kräver ett permanent rotskal, tillhandahåller Ubuntu kommandon som:
sudo -i o sudo su -
que De simulerar en fullständig root-inloggning, med sin egen miljö och PATHDetta är användbart för skript och verktyg som förväntas vara i en "ren" rotmiljö för att fungera korrekt utan att behöva aktivera permanent direktinloggning.
Root-åtkomst via SSH: aktivera, inaktivera och säkra
På fjärrservrar blir frågan om root-åtkomst ännu viktigare. Som standard fungerar de flesta Ubuntu-installationer De inaktiverar direkt root-inloggning via SSHDetta tvingar dig att logga in med ett vanligt användarkonto och sedan använda sudo. Det är en viktig säkerhetsåtgärd för att förhindra automatiserade attacker.
Om du av någon mycket berättigad anledning behöver aktivera den åtkomsten, innebär den grundläggande processen dessa steg: först tilldela ett lösenord till root Om du inte har det:
sudo passwd root
Och redigera sedan SSH-serverkonfigurationen:
sudo nano /etc/ssh/sshd_config
Leta efter direktivet i den här filen AllowRootLoginOm det är kommenterat ut eller i "prohibit-password" kan du ändra det till:
PermitRootLogin yes
Spara ändringarna och starta om tjänsten:
sudo systemctl restart ssh
Därifrån kan du logga in direkt som root via SSH, något som Detta utgör en betydande sårbarhet om det endast används med ett lösenord.Det minsta acceptabla i detta fall skulle vara att kombinera det med autentisering med publik nyckel och, om möjligt, begränsa åtkomst via IP eller via en bastion eller VPN.
För att vända situationen och stärka säkerheten, redigera om / Etc / ssh / sshd_config och konfigurera:
PermitRootLogin no
Eller, om du subjektivt bara vill tillåta nyckelåtkomst:
PermitRootLogin prohibit-password
Återigen, starta om SSH och, om du vill gå ett steg längre, lås även det lokala root-kontot med:
sudo passwd -l root
Sålunda, Alla fjärradministrationsuppgifter måste gå igenom vanliga användare och sudo-behörigheter., är registrerad och omfattas av reglerna för sudoers-filen.
Bästa praxis när du använder superanvändarbehörigheter
Att bemästra root, sudo och su handlar inte bara om att memorera kommandon, utan om anamma vanor som minimerar risker när du arbetar med höga privilegierDet finns några förnuftiga rutiner som är värda att integrera i din dagliga rutin.
Det viktigaste är att alltid tillämpa principen om minsta privilegium: endast ha nödvändiga behörigheter, och bara så länge som absolut nödvändigt. Översatt till Linux betyder detta att använda `sudo` för isolerade kommandon när det är möjligt och undvika att stanna kvar i ett rotskal under längre perioder i onödan.
Det är också nyckeln Kör aldrig skript eller binärfiler från tvivelaktiga källor som root.Innan du kör ett kodavsnitt som du har kopierat från internet, öppna det med en textredigerare och kontrollera exakt vad det gör. Om du inte förstår någon del, var misstänksam. När det gäller nedladdad programvara, försök alltid att hämta den från officiella arkiv, projektwebbplatser eller andra pålitliga källor, och verifiera kontrollsummorna om utvecklaren publicerar dem.
Om du har möjlighet, Testa först skript eller manualer i en isolerad miljö (en virtuell maskin, en Docker-container, en testmiljö) innan du tillämpar dem på en produktionsserver eller din huvudmaskin, och rådfråga Linux-programvaruknepDet kan bespara dig mycket besvär.
På servrar med flera administratörer är det lämpligt att gå ett steg längre och konfigurera tröjor på ett detaljerat sättDetta gör att varje person bara kan utföra de kommandon de faktiskt behöver. Detta begränsar den potentiella skadan av ett misstag eller ett komprometterat konto, och upprätthåller även spårbarheten av vem som gjorde vad vid varje given tidpunkt.
Genom att övervaka dessa aspekter och respektera idén att Root är ett verktyg för specifika situationer, inte en användare som testar strid för vardagliga uppgifter.Du kan dra full nytta av Linux flexibilitet utan att i onödan äventyra systemets stabilitet och säkerhet.
Linux-ekosystemet förlitar sig starkt på separationen mellan vanlig användare och superanvändare, och på mekanismer som sudo och su för att växla mellan dem endast när det behövs. Att förstå hur root fungerar, när man ska använda det, hur man begränsar dess exponering och hur man återställer det i nödfall är en viktig del för att hantera distributioner klokt, oavsett om det är på din personliga bärbara dator eller på en kritisk produktionsserver.


