This is an old revision of the document!


Laborator 06: Servicii de file sharing

Pentru următoarele exerciții folosim mașina virtuală GSR Debian. Mașina virtuală o gasiti la adresa de mai jos (trebuie sa va logati cu credentialele de pe cs.curs.pub.ro):

https://repository.grid.pub.ro/cs/gsr/GSR%20Debian.ova

Dupa ce o descarcati, trebuie importata în VirtualBox (File → Import Appliance).

Pentru autentificarea în mașina virtuală folosim numele de utilizator student cu parola student. Ne putem conecta și prin SSH de pe sistemul fizic folosind comanda

student@eg106-pc:~$ ssh -l student 192.168.56.115
[...]
Last login: Thu Dec  3 13:57:01 2015
student@gsr-server:~$

Contul student are permisiuni privilegiate. Putem accesa drepturile de root folosind comanda

sudo su

1. rsync (3p)

Tutorial

  • N/A
  • [00]. Pe masina virtuală instalati pachetul rsync.
root@heimdall:~# apt-get update; apt-get install rsync
  • [01]. Pe mașina virtuală adăugați utilizatorul bkpuser cu parola student.
root@heimdall:~# groupadd bkpusr

root@heimdall:~# useradd -d /home/bkpusr -m -g bkpusr -s /bin/bash bkpusr

root@heimdall:~# echo "bkpusr:student" | chpasswd
  • [02].a. Pe mașina virtuală creați directorul /home/bkpuser/stud-home cu drepturi depline pentru utilizatorul bkpuser.
root@heimdall:~# su - bkpusr

bkpusr@heimdall:~$ pwd
/home/bkpusr

bkpusr@heimdall:~$ mkdir stud-home
  • [02].b. Pe mașina fizică creați trei fișiere in directorul /home/student/Documents.
student@mjolnir:~/Documents$ echo "1" > file1.txt

student@mjolnir:~/Documents$ echo "2" > file2.txt

student@mjolnir:~/Documents$ echo "3" > file3.txt
  • [03]. Sincronizați, din contul bkpuser, folosind rsync peste ssh, directorul /home/student/Documents de pe mașina fizică în directorul /home/bkpusr/stud-home de pe mașina virtuală.
student@mjolnir:~$ rsync -avz Documents/ bkpusr@heimdall.local:stud-home/
bkpusr@heimdall.local's password: 
sending incremental file list
./
file1.txt
file2.txt
file3.txt

sent 226 bytes  received 72 bytes  54.18 bytes/sec
total size is 6  speedup is 0.02
  • [04]. Creați în contul utilizatorului bkpuser de pe mașina virtuală o pereche de chei RSA. Copiați cheia publica in contul student de pe mașina fizică. Realizați un script care să ruleze în cron, pe mașina virtuală, în contul utilizatorului bkpuser, la fiecare 1 de minut, și să realizeze automat back-up-ul directorului ~/Documents al utilizatorului student în /home/bkpusr/stud-home
student@mjolnir:~$ ssh-copy-id bkpusr@heimdall.local
bkpusr@heimdall.local's password: 
Now try logging into the machine, with "ssh 'bkpusr@heimdall.local'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

student@mjolnir:~$ rsync -avz Documents/ bkpusr@heimdall.local:stud-home/
sending incremental file list

sent 97 bytes  received 12 bytes  218.00 bytes/sec
total size is 6  speedup is 0.06

student@mjolnir:~$ cat sync.sh 
#!/bin/bash

RUSR=bkpusr
RHOST=heimdall.local
LPATH=/home/student/Documents/
RPATH=stud-home/

rsync -avz $LPATH $RUSR@$RHOST:$RPATH


root@mjolnir:~# chown :crontab /var/spool/cron/crontabs

root@mjolnir:~# chmod g+w /var/spool/cron/crontabs

root@mjolnir:~# ls -ld /var/spool/cron/crontabs/
drwxrwxr-x 4 root crontab 4096 Jan 26 17:52 /var/spool/cron/crontabs/


student@mjolnir:~$ crontab -e
crontab: installing new crontab

student@mjolnir:~$ crontab -l | tail -n 1
* /10 * * * * /home/student/sync.sh

root@mjolnir:~# /etc/init.d/cron restart
Restarting periodic command scheduler: cronStopping periodic command scheduler: cron.
Starting periodic command scheduler: cron.

2. nfs (4p)

  • Comenzi/concepte/fișiere
    • exportfs

Tutorial

  • N/A

Exerciții

  • [01]. Pe mașina virtuală instalați nfs-kernel-server, nfs-common și portmap.
  • [02]. Creați utilizatorul nfsuser pe mașina virtuala și pe mașina fizică. Pe mașina fizică, setați home-ul utilizatorlui ca fiind în /home/nfsuser și pe cea virtuală în /opt/exports/home/nfsuser.
  • [03]. Sincronizati UID-ul și GID-ul utilizatorului nfsuser de pe mașina virtuală cu cel de pe mașina fizică. Ajustați în mod corespunzător ID-ul utilizatorului care deține /opt/exports. (Hint: chown, usermod, groupmod).
  • [04]. Pe mașina virtuală editați fișierul de configurare NFS astfel încât să exportați /opt/exports/home/nfsuser de pe mașina virtuală, setând ca trusted-host IP-ul interfeței virtuale de pe masina fizică, având permisiuni de read-write și permițând conexiuni. (Hint: curs, slide 21).
  • [05]. Actualizați lista export-urilor serviciului de NFS (Hint: exportfs)
  • [06]. În mașina virtuală reporniți daemonul rpcbind. (Hint: /etc/init.d).
  • [07]. Montati temporar export-ul nou creat pe masina fizică în /home/nfsuser.
  • [08]. Logat ca nfsuser în mașina virtuală, creați fișierul nfswrite.txt cu permisiuni 744 în directorul său home. Verificați daca pe client (mașina fizică), in /home/nfsuser exista acest fisier.
  • [09]. Demontați sistemul de fișiere de pe client; verificați din nou existența fișierului pe server.
  • [10]. Montați din nou sistemul de fișiere. Verificați proprietățile fișierului pe client.

3. samba (3p)

  • Comenzi/concepte/fișiere
    • N/A

Tutorial

  • N/A

Exerciții

  • [01]. Instalați serverul de SAMBA pe mașina fizică.
  • [02]. Instalați clientul de SAMBA atât pe mașina fizică cât și pe cea virtuală. (Hint: samba, samba-client)
  • [03]. Folosind man, aflați care sunt daemonii asociați serviciului SAMBA. Verificați dacă acești daemoni sunt porniți pe mașina fizică și, în caz afirmativ, pe ce porturi ascultă.

S-ar putea sa fie nevoie sa porniti daemonii manual:

  • sudo service smbd start
  • sudo service nmbd start

  • [04]. Adăugați o linie nevalidă la sfârșitul fișierului de configurare SAMBA (de ex:“wrong line”). Testați apoi corectitudinea fișierului de configurare folosind utilitarul testparm
  • [05]. Ștergeți linia adaugată anterior și restartați serverul SAMBA.
  • [06]. Configurați serverul Samba în workgroupul EG106. Folosiți ca nume NetBios prenumele vostru. Reporniți serviciul. Hint: folosiți directiva netbios name.
  • [07]. În file manager (Nautilus) folosiți meniul Go, opțiunea Network și selectați Windows Network (sau CTRL+L și apoi smb://). Vizualizați stațiile prezente în workgroup-ul EG106.
  • [08]. Observați că în fișierul de configurare este definită secțiunea de share [homes]. Creați utilizatorul bart pe mașina fizică, restartați serverul și conectați-vă cu smbclient de pe mașina virtuală la home-ul utilizatorului bart de pe mașina fizică. Ce se întâmplă?
  • [08].a. Hint: URL-urile de conectare la un server SAMBA, în linia de comandă, sunt //netbios-name sau \\\\netbios-name. În interfața grafică (Nautilus), puteți folosi smb://netbios-name
  • [08].b. Hint: URL-urile pentru share-uri SAMBA, în linia de comandă, sunt //netbios-name/share-name sau \\\netbios-name\\share-name. În interfața grafică (Nautilus), puteți folosi smb://netbios-name/share-name.
  • [09]. Adaugați utilizatorul bart la baza de parole a serverului SAMBA folosind smbpasswd. Restartați serverul și încercați să vă conectați din nou. Listați fișierele din share-ul curent.
  • [09].a. Hint: Pentru a accesa o resursă cu smbclient sintaxa este: remote_machine/resource
  • [09].b. Hint: Implicit, smbclient folosește ca username utilizatorul curent.
  • [10]. Pe mașina fizică creați directorul /home/bart/private cu permisiuni 744. Creați un share de tip read-write pentru acest director care să permită accesul doar utilizatorului bart. Conectați-vă la acest share de pe mașina virtuală și transferați un fisier (ex:file.txt) de pe mașina virtuală pe mașina fizică. (Hint: valid users)

4. Bonus (1p)

  • [01]. rsync:
  • [01].a. Pe mașina virtuală activati daemonul de rsync (Hint: /etc/default/rsync). Rulați netstat -lntp și identificati linia corespunzătoare daemonului de rsync.
  • [01].b. Creați directoarele /home/student/public-files și /home/student/private-files pe mașina virtuală
  • [01].c. publicați conținutul celor două directoare de mai sus prin daemonul de rsync, astfel încât public-files să poată fi accesat fără parolă și private-files să poata fi accesat numai cu introducerea parolei utilizatorului student.
gsr/laboratoare/laborator-06.1479311374.txt.gz · Last modified: 2016/11/16 17:49 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0