Göm menyn

TDDI41 Grundläggande systemadministration

Tips och tricks

Denna sida innehåller vissa allmänna tips och tricks, länkar och annat. De kan komma att integreras i labbserien på relevanta ställen vid ett framtida tillfälle, men kan också vara

Glömt lösenordet/låst er ute/behöver nå filer på VM-disk utan att starta

Om du har glömt lösenordet till din VM, eller stängt dig själv ute, kan det vara värt att sätta in dess disk i en fungerande VM (som extradisk) och utforska den. Eftersom vi inte har någon diskkryptering eller dylikt, bör det inte vara några större problem (givet att backing image är nåbar, vilket den bör vara på LiU-systemen).

Om du inte vill skriva ett sådant skript själv, testkör /courses/TDDI41/diskattacher.sh.

$ /courses/TDDI41/diskattacher.sh
THE AMAZING DISK ATTACHER
This script is a copy of start_single.sh modified to attach an additional disk image.
It can be used to extract files from a system that you cannot boot from (since we do not do disk encryption or any of that fun stuff).
Use at your own peril!
Note: You have snapshots of your disks if you go to /home/andma54/.zfs/snapshot .
---------------------------------------
Usage: /courses/TDDI41/diskattacher.sh IMG_FILE
For instance, /courses/TDDI41/diskattacher.sh /home/andma54/machine/router.11.img

Ni kan kolla i skriptet för att se hur det ser ut. Det centrala är att vi har en extra parameter -hdb [diskimagen som ska kopplas in].

När vi bootar, välj första (standardalternativet) i GRUB. Välj inte att boota från /dev/sdb1.

Här är ett exempel på ett extremt fult (men framgångsrikt) försök att skriva över ett bortglömt lösenord med ett vi minns. Jag har skickat in diskimagen för min router-image som exempel, och utklippet börjar när vi ssh:at in och fått en prompt):

Jag kollar vilka block devices som finns tillgängliga. Huvuddisken är redan nåbar under /. Jag letar efter något som ser ut som en diskimage för routern och inte monterat. (D v s stort.) I praktiken kommer detta att vara /dev/sdb1.

root@debian:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0      2:0    1    4K  0 disk
sda      8:0    0   25G  0 disk
|-sda1   8:1    0   24G  0 part /
|-sda2   8:2    0    1K  0 part
`-sda5   8:5    0  975M  0 part
sdb      8:16   0   25G  0 disk
|-sdb1   8:17   0   24G  0 part
|-sdb2   8:18   0    1K  0 part
`-sdb5   8:21   0  975M  0 part [SWAP]
sr0     11:0    1 1024M  0 rom

Vi skapar ett ställe att montera den, och monterar den (utan omsvep eller flaggor, detta är fulhack!)

root@debian:~# mkdir /mountpoint
root@debian:~# mount /dev/sdb1 /mountpoint/    # /dev/sdb1 was large, and not mounted
root@debian:~# ls /mountpoint/
bin   dev  home        initrd.img.old  lib32  libx32      media  opt   root  sbin  sys    usr  vmlinuz
boot  etc  initrd.img  lib           lib64  lost+found  mnt     proc  run   srv   tmp    var  vmlinuz.old

Vi ser att det ser ut som roten på vår gamla maskin.

I mitt fall vet jag att jag vill kunna logga in i maskinen, och att problemet är ett bortglömt lösenord. Andra problem kan såklart behöva behandlas på andra sätt. Men nu har vi tillgång till filerna.

root@debian:~# cd /mountpoint/etc/
root@debian:/mountpoint/etc# grep ^root /etc/shadow   # get the root line from the shadow file of the recovery machine. It contains the hash of a password you know (since you logged in to this computer)
root:$y$j9T$8/ky10xfSQGeBAA.NSvom/$B7n51daljH.W7Bu8vPPHRURiLlvjBHShrl5M3duYzs.:19170:0:99999:7:::

Sedan säkerhetskopierar jag /mountpoint/etc/shadow (lösenordshasharna på extradisken jag monterat), öppnar en texteditor och ändrar root-raden till det ovan.

Därefter slår jag av maskinen innan jag slår på routern. Därmed har jag inte flera processer som försöker röra samma diskimage.

root@debian:/mountpoint/etc# shutdown now

Test att starta routern fungerade därefter.


Sidansvarig: Anders Fröberg
Senast uppdaterad: 2023-12-11