mywiki/linux/singleusermode.md

51 lines
3.0 KiB
Markdown

# Single User Mode
## Run level
Il runlevel è un concetto tipico dei sistemi UNIX e Unix-like e rappresenta lo stato di attività di una macchina, relativamente ai programmi in esecuzione e ai servizi offerti.
Ogni runlevel è identificato da un numero, solitamente compreso tra 0 e 6, e ad ogni stato associato la macchina esegue script di sistema relativi alle funzionalità assegnate a quel livello.
- Il runlevel 0: serve ad arrestare (halt) il sistema. In sostanza corrisponde ad uno stato in cui nessun programma è in esecuzione (e la macchina è spenta);
- Il runlevel 1: è detto `Single user mode` ("modalità ad utente singolo"). In questo stato non vi sono programmi in esecuzione in background e nessun utente oltre all'amministratore di sistema ha accesso al sistema, per cui esso è sotto il suo pieno controllo;
- Il runlevel 2: avvia la macchina in modalità multiutente con il networking abilitato, ma senza servizi di rete;
- Il runlevel 3: avvia in modalità multiutente con tutte le funzionalità di networking abilitate, e con tutti i relativi servizi attivi;
- Il runlevel 4: generalmente non è utilizzato;
- Il runlevel 5: avvia in modalità multiutente con tutte le funzionalità di networking abilitate come il runlevel 3, e con un server grafico (quasi sempre X Window System) abilitato;
- Il runlevel 6: serve a riavviare (reboot) il sistema. È simile al runlevel 0, con la differenza che al termine dell'inizializzazione, la macchina viene riavviata piuttosto che spenta.
Per conoscere il runlevel attuale e quello precedente si può usare il comando:
```bash
runlevel
```
## GRUB e single user mode
![edit](./asset/runlevel/grubedit.png)
1. Accendere alla console di GRUB premendo `shift` durante l'avvio del sistema;
2. Premere `e`;
3. Andare alla riga che inizia con `linux /boot/vmlinuz`;
4. Sostituire `ro \ console=ttyS0 console=tty0` con `rw init=/bin/bash`
![init](./asset/runlevel/initbash.jpg)
5. Premere F10 per avviare il sistema.
Oppure
- Modify kernel line: add single between `ro quiet` and at the end of this line add `init=/bin/bash`
- Press `F10`
- When the prompt is `root@(none):/#` you have to remount the `/` partition to have read-write access: `mount / -rw -o remount`
- Now you are ready to modify the root password: type `passwd` and change it!
## Collegamenti
- [https://it.wikipedia.org/wiki/Runlevel](https://it.wikipedia.org/wiki/Runlevel)
- [https://en.wikipedia.org/wiki/Single-user_mode](https://en.wikipedia.org/wiki/Single-user_mode)
- [https://askubuntu.com/questions/132965/how-do-i-boot-into-single-user-mode-from-grub](https://askubuntu.com/questions/132965/how-do-i-boot-into-single-user-mode-from-grub)
- [https://www.tecmint.com/boot-into-single-user-mode-in-centos-7/](https://www.tecmint.com/boot-into-single-user-mode-in-centos-7/)
- [https://itgala.xyz/how-to-enter-single-user-mode-in-ubuntu/](https://itgala.xyz/how-to-enter-single-user-mode-in-ubuntu/)
- [https://serverfault.com/questions/482079/debian-boot-to-single-user-mode](https://serverfault.com/questions/482079/debian-boot-to-single-user-mode)