joi, 11 iulie 2013

Tutorial de Linux

In continuare va voi prezenta cativa pasi simpli pentru a intra rapid in lumea linuxului.

1. Cum se fac folderele? Cum faci un link? Cum scrii ceva intr-un fisier? Ca in exemplul de mai jos: 
student@LinuxMint ~ $ mkdir folder1
student@LinuxMint ~ $ cd folder1/
student@LinuxMint ~/folder1 $ mkdir folder2
student@LinuxMint ~/folder1 $ cd folder2/
student@LinuxMint ~/folder1/folder2 $ date > fisier1
student@LinuxMint ~/folder1/folder2 $ ln -s /etc/ fisier2

Cum copiezi fisierele ascunse dintr-un folder intr-altul?
Toate fisierele ascunse in UNIX sunt de forma ".*" (De exemplu: ".fisier", ".ceva_ascuns" etc.)
Ca sa iei toate fisierele apelezi comanda:
 find /home/student/ -name ".*" -type f
Ca sa le copiezi pe toate in folderul curent, apelezi parametrul -exec al comenzii find, astfel:
 student@LinuxMint ~/folder1/folder3 $  find /home/student/ -name ".*" -type f -exec cp '{}' ./ \;
Ca sa le pui pe toate intr-un fisier, pur si simplu redirectezi output-ul comenzii intr-un fisier:
  find /home/student/ -name ".*" -type f > fisier

Acum, ca sa verifici ca s-au copiat (daca nu ti-a dat nicio eroare), apelezi comanda ls cu parametrul -a (adica all files):
student@LinuxMint ~/folder1/folder3 $ ls -a

Ca sa faci o arhiva gzip folosesti comanda tar. Pentru a cunoaste toti parametrii, folosesti "man tar"
student@LinuxMint ~ $ tar -cvzf ierarhie.gzip folder1/

2. Cum configurezi setari de retea? Simplu.
Ele ar trebui sa arate cam asa:
Atentie la user@masina, ca sa stii pe ce masina se da acea comanda:

root@host-01:~# ip address add 80.80.80.1/24 dev eth1
root@host-01:~# ip link set dev eth1 up

root@host-02:~# ip address add 80.80.80.2/24 dev eth1
root@host-02:~# ip link set dev eth1 up

pentru a testa, folosim ping, astfel:
root@host-01:~# ping 80.80.80.2

pentru mai multe detalii despre retele poti folosi site-ul cursului de Retele locale (laboratoarele mai exact, incepand de la labul 7 incolo):
http://ocw.cs.pub.ro/courses/rl

5. Cum faci un fisier cu date aleatorii, de o anumita dimensiune? Cum il copiezi cu scp? 
Creati un fisier cu date aleatorii de 10K (adica date random de 10MB). (in home-ul lui student)
Deci ne logam ca student (su student), mergem in home-ul lui (cd ~) si aici apelam comanda care face fisiere:
dd if=/dev/urandom of=fisier bs=10240 count=1024

mai departe, ca sa copiem fisierul pe cele doua host-uri, apelam:
scp ~/fisier root@host-01:/var/tmp
scp ~/fisier root@host-02:/var/tmp

6. Cum configurezi autentificarea cu chei publice-private?
Autentificarea cu chei publice. Asta inseamna sa te loghezi fara sa mai bagi parola. Se genereaza o cheie pe calculatorul tau, iar pe celalalt calculator trebuie sa existe cheia ta, ca sa te recunoasca. Cum se face treaba:
Aceștia sunt pașii pe care îi veți urma pentru a configura conectare SSH pe bază de chei:
pas1: generare pereche de chei SSH (folosind comanda ssh-keygen)
pas2: copiere cheie publică în contul de la distanță (folosind comanda ssh-copy-id)
pas3: conectare la distanță (folosind comanda ssh)

pasul 1: generam cheile folosind comanda ssh-keygen, astfel:
student@router:~# ssh-keygen -t rsa
(apesi enter, pagi parola, repeti parola si s-a generat).
La fel si pe host-01, cu utiliatorul ubuntu
ubuntu@host-01:~# ssh-keygen -t rsa

Cheile sunt generate în fișierele, .ssh/id_rsa (cheia privată) și .ssh/id_rsa.pub (cheia publică).
Daca TU vrei sa te conectezi la un host, pe calculatorul TAU trebuie sa ramana cheia privata, iar pe host sa pui cheia publica.
Un calculator tine cheile publice ale celorlalte calculatoare care se pot conecta la el in fisierul ~/.ssh/authorized_keys

pasul 2: copierea cheilor publice in contul de la distanta:
student@router:~$ ssh-copy-id ubuntu@host-01
(aici iti cere parola contului ubuntu de pe statia host-01. Parola e ubuntu).

Ca sa se poata conecta si userul ubuntu de pe host-01 la userul student de pe router, trebuie copiata si cheia lui ubuntu pe statia router, astfel:
ubuntu@host-01:~$ ssh-copy-id student@router
(aici iti cere parola lui student: student).
student@router:~$ ssh ubuntu@host-01
Daca te-ai autentificat fara sa iti ceara parola, atunci inseamna ca totul s-a configurat cu succes. Poti testa si de pe host-01 pe router:
ubuntu@host-01:~$ ssh student@router
La fel ca mai sus: daca te-ai autentificat (apare in terminal student@router) inseamna ca s-a configurat bine.