Att återställa ett förlorat rotlösenord i Linux är en vanlig uppgift, och tack och lov finns det flera pålitliga metoder för att uppnå detta. Här är en uppdelning av de vanligaste och effektiva tillvägagångssätten, tillsammans med förklaringar och överväganden:
1. Använda Grub (Grand Unified BootLoader) - Den vanligaste metoden
Den här metoden innebär att avbryta startprocessen och starta i ett enda användarläge där du kan återställa lösenordet.
steg:
1. starta om systemet: Starta om din Linux -maskin.
2. Avbryta startprocessen: När systemet startar, se efter Grub -menyn. Du ser vanligtvis en lista över operativsystem. Du kan behöva trycka på en tangent (som `esc ',` shift', 'e' eller `ange ') upprepade gånger eller hålla den ner för att visa menyn. Nyckeln varierar beroende på ditt system och Grub -konfiguration. Om du inte ser Grub -menyn kan den vara dold. Att hålla ner "skift" under start avslöjar ofta det.
3. Redigera Grub -posten: När Grub -menyn visas använder du pilknapparna för att markera posten du vill starta (vanligtvis standard Linux -alternativet). Tryck på `E` för att redigera den valda posten. Detta kommer att öppna en textredigerare inom Grub -miljön.
4. Hitta kärnlinjen: Leta efter en linje som börjar med `Linux 'eller` Linux16`. Denna linje innehåller parametrar som skickas till kärnan under start.
5. append `init =/bin/bash` eller` rd.Break Enforcing =0` (eller `SystemD.Unit =nöd.Target`) till kärnlinjen:
* `init =/bin/bash`: Detta är den äldre, vanligare metoden. Den säger till kärnan att starta `/bin/bash` som den första processen istället för det normala init -systemet (som systemd eller sysvinit). Detta ger dig effektivt ett rotskal. När du är klar med att ändra lösenordet måste du återmontera rotfilsystemet som lässkrivning innan du kan ändra lösenordet.
* `rd.Break verkställande =0` (CentOS/RHEL/Fedora med Selinux): Detta är i allmänhet den * föredragna * metoden för röda hattbaserade system (CentOS, RHEL, Fedora) som har Selinux aktiverat. `Rd.Break 'berättar för initramfs att stoppa startprocessen innan du byter till det verkliga rotfilsystemet, vilket ger dig en möjlighet att göra förändringar. `Tillverkning =0` sätter Selinux i tillåtet läge, vilket förhindrar att Selinux stör din lösenordsåterställning.
* `SystemD.Unit =Emergency.Target` (SystemD Systems): Detta kommer att få systemet att starta i nödläge
Exempel (med `init =/bin/bash`):
`` `
Linux /boot/vmlinuz-5.15.0-72-generic root =/dev/mapper/vgubuntu-root ro tyst stänk $ vt_handoff
`` `
Ändra det till:
`` `
linux /boot/vmlinuz-5.15.0-72-generic root =/dev/mapper/vgubuntu-root ro tyst stänk $ vt_handoff init =/bin/bash
`` `
Exempel (med `rd.break verkställande =0`):
`` `
Linux /boot/vmlinuz-5.15.0-72-generic root =/dev/mapper/vgubuntu-root ro tyst stänk $ vt_handoff
`` `
Ändra det till:
`` `
linux /boot/vmlinuz-5.15.0-72-generic root =/dev/mapper/vgubuntu-root ro tyst stänk $ vt_handoff rd.break verkställande =0
`` `
Placera alternativet vid * slutet * på linjen efter andra befintliga alternativ, åtskilda av ett utrymme.
6. Starta den redigerade posten: Tryck på `Ctrl+X` eller` F10` för att starta med den modifierade Grub -posten.
7. REMOUNT ROOT -filsystemet (om du använder `init =/bin/bash`):
* Med `init =/bin/bash` är rotfilsystemet monterat skrivskyddat. Du måste återmontera det som lässkrivning innan du kan ändra lösenordet. Kör följande kommando:
`` `bash
Mount -O Remount, RW /
`` `
8. Ändra rotlösenordet: Använd kommandot `passwd`:
`` `bash
passwd
`` `
Ange det nya lösenordet när du uppmanas. Du blir ombedd att ange den igen för bekräftelse.
9. Om du använder `RD.Break -verkställighet =0` (CentOS/RHEL/Fedora med Selinux):
* Filsystemet kanske inte finns i rotkatalogen. Du kommer först att behöva kryra till roten.
`` `bash
chroot /sysroot
`` `
* Ändra nu rotlösenordet:
`` `bash
passwd
`` `
10. Återaktivera Selinux (om du använder `RD.Break-verkställande =0`):
* När du har ändrat lösenordet måste du ommärke filsystemet.
`` `bash
Touch /.Autorelabel
utgång
utgång
`` `
Systemet kommer att starta om och utföra ommärkningsprocessen. Det kan ta ett tag. Avbryt inte processen.
11. Reboot: Typ `exec /sbin /init` (eller` starta om -f` om det första kommandot inte fungerar, men detta är mindre rent och kan potentiellt leda till filsystemets inkonsekvenser). Om du använder "init =/bin/bash" kan det att skriva "utgång" i vissa fall, men "exec/sbin/init" är i allmänhet mer tillförlitlig.
Viktiga överväganden för Grub Method:
* Grub Lösenordsskydd: Om din Grub-bootloader är lösenordsskyddad fungerar inte den här metoden direkt. Du måste först veta Grub -lösenordet.
* kryptering (Luks): Om ditt rotfilsystem är krypterat (t.ex. med Luks) måste du låsa upp den krypterade partitionen * innan * du kan komma åt det och ändra lösenordet. Detta innebär i allmänhet att komma in i dekrypteringsfrasen vid start. Stegen ovan tillämpas sedan efter att ha låst upp den krypterade volymen.
* selinux (CentOS/RHEL/Fedora): På system med SELINUX aktiverat är det * avgörande * att ommärke filsystemet efter att ha ändrat lösenordet, som visas i instruktionerna "Rd.Break". Om du inte gör detta kan du stöta på allvarliga problem, inklusive oförmågan att logga in även med rätt lösenord.
2. Använda en live CD/USB
Denna metod involverar start från en live Linux -miljö (t.ex. Ubuntu Live CD, Fedora Live USB) och monterar din rotpartition för att ändra lösenordet.
steg:
1. Boot från Live Media: Starta din dator från en Linux Live CD eller USB -enhet.
2. Identifiera din rotpartition: Öppna en terminal i den levande miljön. Använd kommandot `lsblk` eller` fdisk -l` för att identifiera rätt partition som innehåller din Linux -installationens rotfilsystem (`/`). Leta efter partitionen som har "Root" -monteringspunkten tilldelad den.
3. Montera rotpartitionen: Skapa en monteringspunkt (en katalog) och montera rotpartitionen där. Byt ut `/dev/sdax` med den faktiska enheten och partitionen du identifierade i föregående steg.
`` `bash
sudo mkdir /mnt /myroot
sudo mount /dev /sdax /mnt /myroot
`` `
Om du har en separat "/boot" -partition kan du också behöva montera det:
`` `bash
sudo mount/dev/sday/mnt/myroot/boot # byt ut/dev/sday med din startpartition
`` `
4. Montera specialfilsystem: Montera filerna "Proc", "sys" och "dev" från den levande miljön i den monterade rotkatalogen. Detta är nödvändigt för att "Chroot" fungerar korrekt.
`` `bash
sudo mount -o bind /proc /mnt /myroot /proc
sudo mount -o bind /sys /mnt /myroot /sys
sudo mount -o bind /dev /mnt /myroot /dev
sudo mount -o bind/dev/pts/mnt/myroot/dev/pts
`` `
5. chroot in i rotfilsystemet: Använd kommandot "Chroot" för att ändra rotkatalogen till den monterade partitionen. Detta gör din monterade partition till "roten" för efterföljande kommandon.
`` `bash
sudo chroot /mnt /myroot
`` `
6. Ändra rotlösenordet: Använd kommandot `passwd`:
`` `bash
passwd
`` `
Ange det nya lösenordet när du uppmanas.
7. EXIT CHROOT OCH UNMOUNT:
`` `bash
Avsluta # EXIT CHROOT -miljön
sudo umount/mnt/myroot/dev/pts
sudo umount/mnt/myroot/dev
sudo umount/mnt/myroot/sys
sudo umount/mnt/myroot/proc
sudo umount /mnt /myroot /boot # om du monterad /start
sudo umount /mnt /myroot
`` `
8. Reboot: Starta om datorn och starta från din vanliga hårddisk.
Viktiga överväganden för live CD/USB -metod:
* kryptering (Luks): Om ditt rotfilsystem är krypterat måste du låsa upp det från livemiljön * innan * du kan montera det. Använd `cryptsetup luksopen/dev/sdax myroot` (ersätt`/dev/sdax` med den krypterade partitionen) och ange lösenfrasen. Sedan montera `/dev/mapper/myroot` istället för`/dev/sdax`.
* LVM (logisk volymhantering): Om ditt rotfilsystem är på en LVM -logisk volym, kan du behöva aktivera volymgruppen först:`sudo vgchange -ay '. Identifiera sedan den logiska volymen och montera den.
* Secure Boot: Om Secure Boot är aktiverat i dina UEFI -inställningar kan du behöva inaktivera den eller konfigurera den för att tillåta start från externa medier.
3. Att använda "Single" -kärnanparametern (mindre vanligt, kanske inte fungerar på alla system)
Denna metod liknar Grub -metoden men använder en annan kärnparameter. Det kanske inte är så tillförlitligt som metoden "init =/bin/bash" på moderna system.
steg:
1. starta om och avbryta startprocessen: Samma som i Grub -metoden (steg 1 och 2).
2. Redigera Grub -posten: Samma som i Grub -metoden (steg 3 och 4).
3. bifoga `single` eller` 1` till kärnlinjen: Lägg till `Single 'eller' 1 'i slutet av linjen' Linux 'eller' Linux16 '.
4. Starta det redigerade posten: Tryck på `ctrl+x` eller` f10 "för att starta.
5. Ändra rotlösenordet: Systemet bör starta i enanvändarläge, vilket ger dig ett rotskal. Använd kommandot `passwd`:
`` `bash
passwd
`` `
6. Reboot: Typ `Starta om".
Varför dessa metoder fungerar (förklaring):
* Grub och enkelanvändarläge: Grub är bootloader som laddar Linux -kärnan. Genom att avbryta startprocessen och modifiera kärnparametrarna kan vi instruera kärnan att starta in i ett speciellt läge (enkelanvändarläge) där vi har direkt åtkomst till rotkontot * utan att * kräver ett lösenord. Detta beror på att enanvändarläge är utformat för systemunderhåll och återhämtning. Parametern "init =/bin/bash" åsidosätter standardinitieringsprocessen, vilket ger dig ett rotskal direkt.
* Live CD/USB och Chroot: En live CD/USB ger en separat, fungerande Linux -miljö. Genom att montera rotpartitionen i ditt installerade system och använda "Chroot", växlar du i huvudsak "rotfilsystemet till ditt installerade systems rotkatalog. Detta gör att du kan köra kommandon (som `passwd`) som om du var inloggad på ditt installerade system, även om du faktiskt kör dem från livemiljön.
Säkerhetsöverväganden:
* Fysisk åtkomst: Dessa metoder kräver fysisk åtkomst till maskinen. Om någon har fysisk åtkomst kan de potentiellt äventyra systemet, oavsett lösenord.
* Grub -lösenord: Överväg att ställa in ett lösenord för Grub för att förhindra obehörig modifiering av startalternativ.
* kryptering: Kryptering av ditt rotfilsystem (t.ex. med Luks) lägger till ett starkt lager av säkerhet, eftersom en angripare skulle behöva dekrypteringsfrasen för att få åtkomst till uppgifterna, även med fysisk åtkomst.
* Secure Boot: Secure Boot hjälper till att förhindra att obehöriga startbelastare körs, vilket ger ytterligare ett lager av säkerhet.
Att välja rätt metod:
* grub: Grub -metoden är i allmänhet den enklaste och snabbaste om du har direkt tillgång till systemet och kan avbryta startprocessen. Det är emellertid sårbart om GRUB är lösenordsskyddat eller om filsystemet är krypterat utan att känna till lösenfrasen. Det är också den metod som troligtvis påverkas av Selinux.
* Live CD/USB: LIVE CD/USB-metoden är mer mångsidig och kan användas även om GRUB är lösenordsskyddat. Det kräver lite mer installation men ger en mer kontrollerad miljö. Det är särskilt användbart om du behöver låsa upp ett krypterat filsystem först.
Viktiga anteckningar:
* Backup: Innan du försöker någon av dessa metoder rekommenderas * starkt * att ha en ny säkerhetskopia av dina viktiga data. Även om dessa förfaranden i allmänhet är säkra, finns det alltid en risk för dataförlust om något går fel.
* vård och noggrannhet: Dubbelkontrollera alla kommandon och partitionsnamn innan du kör dem. Typografiska fel kan leda till allvarliga problem.
* selinux: Var särskilt försiktig med Selinux-aktiverade system (CentOS, RHEL, Fedora). Följ relabeleringsstegen exakt.
* Återställningsläge: Vissa Linux -distributioner ger ett "Återställningsläge" -alternativ i Grub -menyn. Det här läget startar ofta in i ett rotskal, vilket förenklar processen för återställning av lösenord. Men det kan fortfarande kräva att filsystemet återställer sig som lässkrivning.
* molninstanser: På virtuella molnmaskiner (t.ex. AWS EC2, Azure VMS, Google Cloud Compute -motor) kan procedurer för återhämtning av lösenord variera. Molnleverantörer erbjuder vanligtvis mekanismer för att återställa rotlösenordet genom sina webbkonsoler eller API:er. Se dokumentationen för din specifika molnleverantör.
Genom att förstå dessa metoder och deras överväganden kan du säkert återställa ett förlorat root -lösenord på ditt Linux -system. Kom ihåg att prioritera säkerheten och alltid säkerhetskopiera dina data.