This shows you the differences between two versions of the page.
uso:laboratoare:new:09-vm:need-to-know [2018/12/01 13:23] liza_elena.babu [Crearea unei mașini virtuale] |
uso:laboratoare:new:09-vm:need-to-know [2018/12/06 19:03] (current) liza_elena.babu [Resetarea parolei de root din GRUB] |
||
---|---|---|---|
Line 7: | Line 7: | ||
de operare pe care vrem să-l instalăm. Acesta conține imaginea nucleului sistemului de operare pe care urmează să îl instalăm. | de operare pe care vrem să-l instalăm. Acesta conține imaginea nucleului sistemului de operare pe care urmează să îl instalăm. | ||
- | 0. Descărcați de [[|aici]] imaginea TinyCore-current.iso. | + | 0. Descărcați de [[http://elf.cs.pub.ro/uso/res/laborator/lab09/|aici]] imaginea TinyCore-current.iso (TinyCore - 16MB) |
1. Deschideți VirtualBox pentru a începe acest tutorial. Apăsați butonul ''new'': | 1. Deschideți VirtualBox pentru a începe acest tutorial. Apăsați butonul ''new'': | ||
Line 45: | Line 46: | ||
- Exportați mașina virtuală anterior creată. (Hint: File -> Export Appliance) | - Exportați mașina virtuală anterior creată. (Hint: File -> Export Appliance) | ||
- | ==== Resetarea parolei de root din GRUB ==== | ||
- | Exista situatii în care sistemul poate deveni inaccesibil: am modificat greșit fișierul /etc/sudoers și nu mai putem folosi sudo, | ||
- | am uitat parola utilizatorului și nu mai putem face login sau dorim setarea unei parole pentru root, dar nu avem drepturi privilegiate. | ||
- | |||
- | Este nevoie să găsim o altă cale pentru a accesa sistemul. Este nevoie de recuperarea parolei utilizatorului root. | ||
- | |||
- | Pentru a realiza acest lucru trebuie sa configuram sistemul ca atunci cand inițializează kernelul, în loc să pornească procesul ''init'', | ||
- | să deschidă un shell. Și pentru ca utilizatorul root e cel care deține procesele inițiale, și shell-ul nostru o sa porneasca cu drepturi | ||
- | "speciale". | ||
- | |||
- | <note> | ||
- | Atenție, din motive de securitate, niciodată nu o să puteți afla parola unui utilizator. În cel mai bun caz o puteți doar suprascrie. | ||
- | </note> | ||
- | |||
- | Pe mașina virtuală, reporniți sistemul. În meniul GRUB, apăsați tasta e atunci când intrarea corespunzătoare este selectată. Se va | ||
- | deschide un mic script într-un editor. Printre instrucțiunile de acolo, avem și parametrii cu care pornește kernel-ul (linia care | ||
- | începe cu linux). Adăugați la finalul acelei linii șirul init=/bin/bash, similar liniei de mai jos: | ||
- | |||
- | <code bash> | ||
- | (...) | ||
- | linux /boot/vmlinuz-3.13.0-39-generic [...] init=/bin/bash | ||
- | (...) | ||
- | </code> | ||
- | |||
- | Apăsați combinația de taste Ctrl+x pentru a salva modificările și a porni sistemul. | ||
- | |||
- | În acest moment aveți acces privilegiat la sistem (vedeți prompt-ul de root care se încheie în #) și puteți face orice acțiuni. În mod | ||
- | obișnuit așa se resetează parola de root (folosind comanda passwd) și apoi se bootează în Linux obișnuit și se folosește acea parolă. | ||
- | |||
- | |||
- | <note important> | ||
- | Este posibil să nu puteți modifica parola pentru că sistemul de fișiere a fost montat //read-only//. La rularea comenzii ''passwd'' veți primi mesajul de eroare: | ||
- | <code> | ||
- | passwd: Authentication token manipulation error | ||
- | </code> | ||
- | În această situație va trebui să remontați fișierul în mod //read-write// folosind comanda: | ||
- | <code> | ||
- | mount -o remount / | ||
- | </code> | ||
- | </note> | ||
- | |||
- | <note important> | ||
- | După ce ați schimbat parola, nu puteți folosi comanda ''reboot'' pentru a reporni mașina virtuală. Folosiți interfața grafică VirtualBox pentru repornirea mașinii virtuale. După ce bootează, verificați că parola utilizatorului ''root'' este cea proaspăt introdusă. | ||
- | </note> | ||
==== Conectare la Internet ==== | ==== Conectare la Internet ==== | ||
- | În acest moment, mașina virtuală tocmai creată nu are acces la Internet. Putem verifica acest lucru folosind comanda ''ping''. | + | Verificați că aveți conexiune la Internet de pe mașina virtuală în felul următor: |
- | + | ||
- | <code bash> | + | |
- | tc@box:~$ ping 8.8.8.8 | + | |
- | PING 8.8.8.8 (8.8.8.8): 56 data bytes | + | |
- | ping: sendto: No route to host | + | |
- | ping: sendto: No route to host | + | |
- | Request timeout for icmp_seq 0 | + | |
- | ping: sendto: No route to host | + | |
- | Request timeout for icmp_seq 1 | + | |
- | ^C | + | |
- | --- 8.8.8.8 ping statistics --- | + | |
- | 3 packets transmitted, 0 packets received, 100.0% packet loss | + | |
- | </code> | + | |
- | + | ||
- | - Urmăriți pașii de [[https://askubuntu.com/questions/363003/no-internet-connection-on-virtualbox-windows-7-as-guest-ubuntu-13-04-as-host|aici]] pentru a configura setările de networking pentru mașina voastră virtuală. Pentru a verifica faptul că totul este în regulă dați din nou ''ping 8.8.8.8''. Atenție: mașina virtuală trebuie să fie oprită în momentul în care faceți configurările de networking. | + | |
- | + | ||
- | Dacă totul decurge cum trebuie, trebuie să obțineți următorul output: | + | |
<code bash> | <code bash> | ||
tc@box:~$ ping 8.8.8.8 | tc@box:~$ ping 8.8.8.8 | ||
Line 122: | Line 62: | ||
</code> | </code> | ||
+ | În cazul în care nu există conexiune la Internet, urmăriți pașii de [[https://askubuntu.com/questions/363003/no-internet-connection-on-virtualbox-windows-7-as-guest-ubuntu-13-04-as-host|aici]] pentru a rezolva problema. | ||
+ | |||
+ | <note important> | ||
+ | Pentru a avea conexiune la Internet de pe mașina noastră virtuală, trebuie să avem setat un adaptor de tip ''NAT''. | ||
+ | </note> | ||
==== Server SSH ==== | ==== Server SSH ==== | ||
Line 128: | Line 73: | ||
<code bash> | <code bash> | ||
- | student@uso:~$ ip a s eth0 | + | student@uso:~$ ip a s eno1 |
- | eth0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 | + | eno1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 |
ether dc:a9:04:7f:e2:53 | ether dc:a9:04:7f:e2:53 | ||
inet6 fe80::c65:9f0a:3b1e:cecd%en0 prefixlen 64 secured scopeid 0x8 | inet6 fe80::c65:9f0a:3b1e:cecd%en0 prefixlen 64 secured scopeid 0x8 | ||
Line 142: | Line 87: | ||
<code bash> | <code bash> | ||
tc@box:~$ ssh student@192.168.1.6 | tc@box:~$ ssh student@192.168.1.6 | ||
- | tc:- ssh command not found | + | sh: ssh command not found |
</code> | </code> | ||
Line 149: | Line 94: | ||
- Urmăriți tutorialul de [[https://iotbytes.wordpress.com/configure-ssh-server-on-microcore-tiny-linux/|aici]] pentru a instala un server de ssh **pe mașina virtuală**. La final, pentru verificare, conectați-vă la stația fizică prin ssh. | - Urmăriți tutorialul de [[https://iotbytes.wordpress.com/configure-ssh-server-on-microcore-tiny-linux/|aici]] pentru a instala un server de ssh **pe mașina virtuală**. La final, pentru verificare, conectați-vă la stația fizică prin ssh. | ||
+ | ==== Resetarea parolei de root din GRUB ==== | ||
+ | |||
+ | Exista situatii în care sistemul poate deveni inaccesibil: am modificat greșit fișierul ''/etc/sudoers'' și nu mai putem folosi sudo, | ||
+ | am uitat parola utilizatorului și nu mai putem face login sau dorim setarea unei parole pentru root, dar nu avem drepturi privilegiate. | ||
+ | |||
+ | Este nevoie să găsim o altă cale pentru a accesa sistemul. Este nevoie de resetarea parolei utilizatorului root. | ||
+ | |||
+ | Pentru a realiza acest lucru trebuie sa configuram sistemul ca atunci cand inițializează kernelul, în loc să pornească procesul ''init'', să deschidă un shell. Deoarece utilizatorul root este cel care deține procesele inițiale, și shell-ul nostru o să pornească cu drepturi "speciale". | ||
+ | |||
+ | <note important> | ||
+ | Atenție, din motive de securitate, niciodată nu o să puteți afla parola unui utilizator. În cel mai bun caz o puteți doar suprascrie. | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | Pentru a intra în meniul GRUB, la pornire țineți apăsat pe tasta ''Shift''. | ||
+ | </note> | ||
+ | |||
+ | |||
+ | Porniți mașina virtuală ''jerry''. În meniul GRUB, apăsați tasta ''e'' atunci când intrarea corespunzătoare este selectată. Se va | ||
+ | deschide un mic script într-un editor. Printre instrucțiunile de acolo, avem și parametrii cu care pornește kernel-ul (linia care | ||
+ | începe cu **linux**). Adăugați la finalul acelei linii șirul init=/bin/bash, similar liniei de mai jos: | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | (...) | ||
+ | linux /boot/vmlinuz-3.13.0-39-generic [...] init=/bin/bash | ||
+ | (...) | ||
+ | </code> | ||
+ | |||
+ | Apăsați combinația de taste ''Ctrl+x'' pentru a salva modificările și a porni sistemul. | ||
+ | |||
+ | În acest moment aveți acces privilegiat la sistem (vedeți prompt-ul de root care se încheie în #) și puteți face orice acțiuni. În mod | ||
+ | obișnuit așa se resetează parola de root (folosind comanda passwd) și apoi se bootează în Linux obișnuit și se folosește acea parolă. | ||
+ | |||
+ | |||
+ | <note important> | ||
+ | Este posibil să nu puteți modifica parola pentru că sistemul de fișiere a fost montat //read-only//. La rularea comenzii ''passwd'' veți primi mesajul de eroare: | ||
+ | <code> | ||
+ | passwd: Authentication token manipulation error | ||
+ | </code> | ||
+ | În această situație va trebui să remontați fișierul în mod //read-write// folosind comanda: | ||
+ | <code> | ||
+ | mount -o remount / | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | |||
+ | <note important> | ||
+ | După ce ați schimbat parola, nu puteți folosi comanda ''reboot'' pentru a reporni mașina virtuală. Folosiți interfața grafică VirtualBox pentru repornirea mașinii virtuale. După ce bootează, verificați că parola utilizatorului ''root'' este cea proaspăt introdusă. | ||
+ | </note> |