Gestiunea Serviciilor de Rețea

Laborator 07 - Servicii de file sharing

IMPORTANT Dacă un pachet nu este instalat iar un exercițiu face referire la acesta, instalați-l.

1. screen și wget (2.5p)

  • Comenzi/concepte/fișiere
    • screen
    • wget

Tutorial

Exerciții

IMPORTANT Acest set de exerciții se realizează pe mașina fizică.

  • [01]. Instalați utilitarul screen. (Hint: nu uitați să actualizați înainte de instalare baza de date cu pachete)
Rezolvare
root@mjolnir:~# apt-get update; apt-get install screen
[...]
  • [02]. Porniți o instanță de screen (Hint: screen)
Rezolvare
student@mjolnir:~$ screen
  • [03]. În fereastra deschisă aflați numele device-ului virtual corespunzător consolei (Hint: tty)
Rezolvare
student@mjolnir:~$ tty
/dev/pts/6
  • [04]. Deschideți un al doilea tab (sau, altfel spus, o a doua fereastră) în screen (Hint: CTRL-a, c)
Rezolvare
Ctrl-A, C
[nu se întâmplă nimic vizibil]
  • [05]. Afișați numele device-ului virtual corespunzător celui de-al doilea tab (Hint: tty)
Rezolvare
student@mjolnir:~$ tty
/dev/pts/4
  • [06]. Afișați lista cu tab-urile existente și intrati înapoi în primul tab (Hint: CTRL-a, ")
Rezolvare
Ctrl-A, "
Afisează următoarele:
Num Name                                                                                          Flags

  0 bash                                                                                              $
  1 bash                                                                                              $
Se selecteaza primul screen și se apasă enter.
  • [07]. Detașați-vă de ecranul screen (Hint: CTRL-a, d). În ce terminal ați ajuns ?
Rezolvare
Ctrl-A, D
[detached from 4592.pts-3.mjolnir]

student@mjolnir:~$ tty
/dev/pts/3
  • [08]. Atașați-vă înapoi la ecranul screen (Hint: screen -r)
Rezolvare
student@mjolnir:~$ screen -r
Se reia conexiunea la primul screen (cel detasat anterior).
  • [09]. [În screen] Creați directorul /home/student/google și, folosind wget, salvați în el conținutul paginii www.google.com (Hint: wget www.google.com)
  • [09].a. Ce fișiere au fost salvate în /home/student/google ?
Rezolvare
student@mjolnir:~$ mkdir /home/student/google

student@mjolnir:~$ cd $_

student@mjolnir:~/google$ wget www.google.com
--2012-01-26 16:55:05--  http://www.google.com/
Resolving www.google.com (www.google.com)... 173.194.69.103, 173.194.69.104, 173.194.69.105, ...
Connecting to www.google.com (www.google.com)|173.194.69.103|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://www.google.ro/ [following]
--2012-01-26 16:55:05--  http://www.google.ro/
Resolving www.google.ro (www.google.ro)... 173.194.69.94
Connecting to www.google.ro (www.google.ro)|173.194.69.94|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `index.html'

    [ <=>                                   ] 14,234      --.-K/s   in 0.05s

2012-01-26 16:55:06 (291 KB/s) - `index.html' saved [14234]

student@mjolnir:~/google$ ls -l
total 16
-rw-r--r-- 1 student student 14234 Jan 26 16:55 index.html
Rezolvare
student@mjolnir:~$ wget -O gentoo.svg http://upload.wikimedia.org/wikipedia/commons/4/48/Gentoo_Linux_logo_matte.svg
--2012-01-26 16:57:24--  http://upload.wikimedia.org/wikipedia/commons/4/48/Gentoo_Linux_logo_matte.svg
Resolving upload.wikimedia.org (upload.wikimedia.org)... 91.198.174.234
Connecting to upload.wikimedia.org (upload.wikimedia.org)|91.198.174.234|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13764 (13K) [image/svg+xml]
Saving to: `gentoo.svg'

100%[======================================>] 13,764      --.-K/s   in 0.09s   

2012-01-26 16:57:24 (145 KB/s) - `gentoo.svg' saved [13764/13764]
  • [11]. [În screen] Creați directorul /home/student/kernel
Rezolvare
student@mjolnir:~$ mkdir /home/student/kernel
Rezolvare
student@mjolnir:~/kernel$ wget -r -l 1 http://www.kernel.org/pub/linux/kernel/v2.6/testing/v2.6.31/
[...]

student@mjolnir:~/kernel$ ls -l
total 4
drwxr-xr-x 3 student student 4096 Jan 26 17:00 www.kernel.org
Rezolvare
student@mjolnir:~$ wget http://download.fedoraproject.org/pub/fedora/linux/releases/14/Live/i686/Fedora-14-i686-Live-Desktop.iso
[..]
  • [14]. [În screen] Întrerupeți descărcarea anterioară și reporniți-o, continuând download-ul de unde ați rămas. (Hint: man wget, /continue)
Rezolvare
Ctrl-C
student@mjolnir:~$ wget -c http://download.fedoraproject.org/pub/fedora/linux/releases/14/Live/i686/Fedora-14-i686-Live-Desktop.iso
[...]
  • [15]. Detașați-vă de la screen și lăsati download-ul în background.
Rezolvare
Ctrl-A, D

2. rsync (2.5p)

  • Comenzi/concepte/fișiere
    • rsync

Tutorial

  • N/A

Exerciții

  • [00]. Pe masina virtuală instalati pachetul rsync.
Rezolvare
root@heimdall:~# apt-get update; apt-get install rsync
  • [01]. Pe mașina virtuală adăugați utilizatorul bkpusr.
Rezolvare
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/bkpusr/stud-home cu drepturi depline pentru utilizatorul bkpusr.
Rezolvare
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
Rezolvare
student@mjolnir:~/Documents$ echo "1" > file1.txt

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

student@mjolnir:~/Documents$ echo "3" > file3.txt
  • [03]. Sincronizați, folosind rsync peste ssh, directorul /home/student/Documents de pe mașina fizică în directorul /home/bkpusr/stud-home de pe mașina virtuală. Folosiți contul utilizatorului bkpusr creat anterior.
  • [03].a. Hint: curs, slide 16
Rezolvare
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]. Adăugați în contul utilizatorului bkpusr de pe mașina virtuală cheia utilizatorului student de pe mașina fizică. Realizați un script care să ruleze în cron, pe mașina fizică, in contul utilizatorului student, la fiecare 10 de minute, și să realizeze automat back-up-ul directorului ~/Documents al utilizatorului student în /home/bkpusr/stud-home (Hint: crontab -e, http://www.foogazi.com/2008/04/01/quickzi-how-to-set-cron-to-run-every-5-minutes/)
  • [04].a. Pentru directorul /var/spool/cron/crontabs realizați următoarele modificări:
    • adăugăti drept de scriere pentru grup
    • modificați grupul ce deține directorul în crontab
  • [04].b. Nu uitati sa reporniti daemonul de cron dupa realizarea configurarilor.
Rezolvare
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.

3. nfs (3p)

  • Comenzi/concepte/fișiere
    • exportfs

Tutorial

  • N/A

Exerciții

  • [01]. Pe mașina virtuală instalați nfs-kernel-server, nfs-common și rpcbind.
Rezolvare
root@heimdall:~# apt-get install nfs-kernel-server nfs-common portmap
[...]
  • [02]. Creați utilizatorii nfsuser pe mașina fizică și pe cea virtuală. Pe mașina fizică, setați home-ul utilizatorlui ca fiind în /home/nfsuser și pe cea virtuală în /opt/exports/home/nfsuser.
Rezolvare
root@heimdall:~# groupadd nfsuser

root@heimdall:~# mkdir -p /opt/exports/home

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

root@heimdall:~# echo "nfsuser:student" | chpasswd



root@mjolnir:~# groupadd nfsuser

root@mjolnir:~# useradd -d /home/nfsuser -m -g nfsuser -s /bin/bash nfsuser

root@mjolnir:~# echo "nfsuser:student" | chpasswd



root@heimdall:~# apt-get install finger

root@heimdall:~# finger nfsuser
Login: nfsuser        			Name: 
Directory: /opt/exports/home/nfsuser	Shell: /bin/bash
Never logged in.
No mail.
No Plan.



root@mjolnir:~# apt-get install finger

root@mjolnir:~# finger nfsuser
Login: nfsuser        			Name: 
Directory: /home/nfsuser            	Shell: /bin/bash
Never logged in.
No mail.
No Plan.
  • [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).
Rezolvare
root@heimdall:~# id nfsuser
uid=1002(nfsuser) gid=1003(nfsuser) groups=1003(nfsuser)



root@mjolnir:~# id nfsuser
uid=1001(nfsuser) gid=1001(nfsuser) groups=1001(nfsuser)

root@mjolnir:~# usermod -u 1002 nfsuser

root@mjolnir:~# groupmod -g 1003 nfsuser

root@mjolnir:~# id nfsuser
uid=1002(nfsuser) gid=1003(nfsuser) groups=1003(nfsuser)



root@heimdall:~# chown -R nfsuser:nfsuser /opt/exports
  • [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 insecure. (Hint: curs, slide 21).
Rezolvare
root@heimdall:~# tail -n 1 /etc/exports
/opt/exports/home/nfsuser 192.168.48.1(rw,insecure)
  • [05]. Actualizați lista export-urilor serviciului de NFS (Hint: exportfs)
Rezolvare
root@heimdall:~# exportfs -ra
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.48.1:/opt/exports/home/nfsuser".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x

root@heimdall:~# exportfs
/opt/exports/home/nfsuser
		192.168.48.1
  • [06]. În mașina virtuală reporniți daemonul rpcbind. (Hint: /etc/init.d).
Rezolvare
root@heimdall:~# /etc/init.d/rpcbind restart
Stopping rpcbind daemon....
Starting rpcbind daemon...Already running..
  • [07]. Montati temporar export-ul nou creat pe masina fizică în /home/nfsuser.
Rezolvare
root@heimdall:~# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:5a:9c:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.48.128/24 brd 192.168.48.255 scope global eth0
    inet6 fe80::20c:29ff:fe5a:9c6c/64 scope link 
       valid_lft forever preferred_lft forever



root@mjolnir:~# apt-get install portmap

root@mjolnir:~# apt-get install nfs-common

root@mjolnir:~# mount 192.168.48.128:/opt/exports/home/nfsuser/ /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.
Rezolvare
nfsuser@heimdall:~$ touch nfswrite.txt

nfsuser@heimdall:~$ chmod 744 nfswrite.txt 

nfsuser@heimdall:~$ ls -l
total 0
-rwxr--r-- 1 nfsuser nfsuser 0 Jan 26 18:34 nfswrite.txt



root@mjolnir:~# ls -l /home/nfsuser/
total 0
-rwxr--r-- 1 nobody nogroup 0 Jan 26 18:34 nfswrite.txt
  • [09]. Demontați sistemul de fișiere de pe client; verificați din nou existența fișierului pe server.
Rezolvare
root@mjolnir:~# umount /home/nfsuser

root@mjolnir:~# ls -l /home/nfsuser/
total 0



nfsuser@heimdall:~$ ls -l
total 0
-rwxr--r-- 1 nfsuser nfsuser 0 Jan 26 18:34 nfswrite.txt
  • [10]. Montați din nou sistemul de fișiere. Verificați proprietățile fișierului pe client.
Rezolvare
root@mjolnir:~# mount 192.168.48.128:/opt/exports/home/nfsuser/ /home/nfsuser/

root@mjolnir:~# ls -l /home/nfsuser/
total 0
-rwxr--r-- 1 nobody nogroup 0 Jan 26 18:34 nfswrite.txt

root@mjolnir:~# file /home/nfsuser/nfswrite.txt 
/home/nfsuser/nfswrite.txt: empty

4. samba (2p)

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

Tutorial

  • N/A

Exerciții

  • [01]. Instalați serverul de SAMBA pe mașina fizică.
Rezolvare
root@mjolnir:~# apt-get install samba
[...]
  • [02]. Instalați clientul de SAMBA atât pe mașina fizică cât și pe cea virtuală. (Hint: samba, smbclient)
Rezolvare
root@mjolnir:~# apt-get install smbclient smbfs
[...]

root@heimdall:~# apt-get install smbclient smbfs
[...]
  • [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ă.
Rezolvare
       smbd(8)
           The smbd daemon provides the file and print services to SMB clients, such as Windows 95/98,
           Windows NT, Windows for Workgroups or LanManager. The configuration file for this daemon is
           described in smb.conf(5)

       nmbd(8)
           The nmbd daemon provides NetBIOS nameservice and browsing support. The configuration file for
           this daemon is described in smb.conf(5)

root@mjolnir:~# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      7288/rpcbind    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1593/sshd       
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1603/cupsd      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1475/exim4      
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      9933/smbd       
tcp        0      0 0.0.0.0:46174           0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:36000           0.0.0.0:*               LISTEN      7794/rpc.statd  
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      9933/smbd       
tcp6       0      0 :::111                  :::*                    LISTEN      7288/rpcbind    
tcp6       0      0 :::22                   :::*                    LISTEN      1593/sshd       
tcp6       0      0 ::1:631                 :::*                    LISTEN      1603/cupsd      
tcp6       0      0 ::1:25                  :::*                    LISTEN      1475/exim4      
tcp6       0      0 :::60219                :::*                    LISTEN      7794/rpc.statd  
tcp6       0      0 :::445                  :::*                    LISTEN      9933/smbd       
tcp6       0      0 :::47114                :::*                    LISTEN      -               
tcp6       0      0 :::139                  :::*                    LISTEN      9933/smbd    
  • [04]. Adăugați o linie invalidă la sfârșitul fișierului de configurare SAMBA (de ex:“wrong line”). Testați apoi corectitudinea fișierului de configurare folosind utilitarul testparm
Rezolvare
root@mjolnir:~# vim /etc/samba/smb.conf

root@mjolnir:~# tail -n 1 /etc/samba/smb.conf
wrong line

root@mjolnir:~# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
params.c:Parameter() - Ignoring badly formed line in configuration file: wrong line
[...]
  • [05]. Ștergeți linia adaugată anterior și restartați serverul SAMBA.
Rezolvare
root@mjolnir:~# vim /etc/samba/smb.conf

root@mjolnir:~# /etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
  • [06]. Configurați serverul Samba în workgroupul EG106. Folosiți ca nume NetBios prenumele vostru. Reporniți serviciul. Hint: folosiți directiva netbios name.
Rezolvare
root@mjolnir:~# grep -A 2 "workgroup =" /etc/samba/smb.conf
   workgroup = EG106
   netbios name = gsr
   
root@mjolnir:~# /etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
  • [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.
Rezolvare
Go > Network > Windows Shares > EG106 (sau numele configurat) > lista stațiilor
  • [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.
Rezolvare
root@mjolnir:~# groupadd bart

root@mjolnir:~# useradd -d /home/bart -m -g bart -s /bin/bash bart

root@mjolnir:~# echo "bart:student" | chpasswd

root@mjolnir:~# /etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.

student@heimdall:~$ smbclient -L //gsr
Enter student's password: 
session setup failed: NT_STATUS_LOGON_FAILURE

student@heimdall:~$ smbclient -L //gsr -U bart
Enter bart's password: 
session setup failed: NT_STATUS_LOGON_FAILURE
  • [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.
Rezolvare
root@mjolnir:~# smbpasswd -a bart
New SMB password:
Retype new SMB password:
Added user bart.


student@heimdall:~$ smbclient -L //gsr -U bart
Enter bart's password: 
Domain=[EG106] OS=[Unix] Server=[Samba 3.6.1]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (mjolnir server)
	bart            Disk      Home Directories


Domain=[EG106] OS=[Unix] Server=[Samba 3.6.1]

	Server               Comment
	---------            -------
	GSR                  mjolnir server

	Workgroup            Master
	---------            -------
	EG106                GSR
  • [10]. Pe mașina fizică creați directorul /home/bart/private, cu permisiuni 744.
Rezolvare
root@mjolnir:~# su - bart

bart@mjolnir:~$ pwd
/home/bart

bart@mjolnir:~$ mkdir private

bart@mjolnir:~$ chmod 744 private/
  • [11]. Creați un share de tip read-write pentru acest director care să permită accesul doar utilizatorului bart
Rezolvare
root@mjolnir:~# tail -n 6 /etc/samba/smb.conf
[bart_is_sharing]
        comment = bart's shared folder
        read only = no
        path = /home/bart/private
        guest ok = no
        valid users = bart

root@mjolnir:~# /etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
  • [12]. 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ă.
  • [12].a. Hint: valid users
Rezolvare
student@heimdall:~$ smbclient -L //gsr/ -U bart
Enter bart's password: 
Domain=[EG106] OS=[Unix] Server=[Samba 3.6.1]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	bart_is_sharing Disk      bart's shared folder
	IPC$            IPC       IPC Service (mjolnir server)
	bart            Disk      Home Directories
Domain=[EG106] OS=[Unix] Server=[Samba 3.6.1]

	Server               Comment
	---------            -------
	GSR                  mjolnir server

	Workgroup            Master
	---------            -------
	EG106                GSR


student@heimdall:~$ echo "text" > file.txt

student@heimdall:~$ smbclient //gsr/bart_is_sharing -U bart
Enter bart's password: 
Domain=[EG106] OS=[Unix] Server=[Samba 3.6.1]
smb: \> ?
?              allinfo        altname        archive        blocksize      
cancel         case_sensitive cd             chmod          chown          
close          del            dir            du             echo           
exit           get            getfacl        geteas         hardlink       
help           history        iosize         lcd            link           
lock           lowercase      ls             l              mask           
md             mget           mkdir          more           mput           
newer          open           posix          posix_encrypt  posix_open     
posix_mkdir    posix_rmdir    posix_unlink   print          prompt         
put            pwd            q              queue          quit           
readlink       rd             recurse        reget          rename         
reput          rm             rmdir          showacls       setea          
setmode        stat           symlink        tar            tarmode        
translate      unlock         volume         vuid           wdel           
logon          listconnect    showconnect    ..             !              
smb: \> ls
  .                                   D        0  Thu Jan 26 21:16:37 2012
  ..                                  D        0  Thu Jan 26 21:17:44 2012
		40317 blocks of size 2097152. 37508 blocks available

smb: \> put file.txt
putting file file.txt as \file.txt (0.3 kb/s) (average 0.3 kb/s)

smb: \> ls 
  .                                   D        0  Thu Jan 26 21:30:24 2012
  ..                                  D        0  Thu Jan 26 21:17:44 2012
  file.txt                            A        5  Thu Jan 26 21:30:24 2012

smb: \> exit

student@heimdall:~$ 

5. swat (1p)

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

Tutorial

  • N/A

Exerciții

  • [01]. Instalați utilitarul SWAT și folosiți-l pentru a vedea share-urile existente în sistem.
  • [01].a. Hint: SWAT poate fi accesat dintr-un browser pe portul 901.
  • [01].b. Folositi username-ul root.
  • [01].c. după instalare, reporniți /etc/init.d/openbsd-inetd
Rezolvare
root@mjolnir:~# apt-get install swat

root@mjolnir:~# /etc/init.d/openbsd-inetd restart
Restarting internet superserver: inetd.

În Firefox: http://localhost:901 > interfața grafică
  • [02]. Modificați share-urile definite anterior, inversând opțiunile read-only și read-write.
Rezolvare
Shares > Choose share > read only > yes/no -> commit changes
  • [03]. Inchideți SWAT și observați modificările facute în smb.conf dintr-o consolă.
Rezolvare
Setare optiuni > commit changes

root@mjolnir:~# tail -n 3 /etc/samba/smb.conf
	comment = bart's shared folder
	path = /home/bart/private
	valid users = bart
  • [04]. De pe mașina virtuală accesați din nou cele două resurse și încercați să transferați fișierul rwtest.txt. Care sunt rezultatele?
Rezolvare
student@heimdall:~$ echo "text" > rwtest.txt

student@heimdall:~$ smbclient //gsr/bart_is_sharing -U bart
Enter bart's password: 
Domain=[EG106] OS=[Unix] Server=[Samba 3.6.1]
smb: \> ls
  .                                   D        0  Thu Jan 26 21:30:24 2012
  ..                                  D        0  Thu Jan 26 21:17:44 2012
  file.txt                            A        5  Thu Jan 26 21:30:24 2012

		40317 blocks of size 2097152. 37500 blocks available
smb: \> put rwtest.txt
NT_STATUS_ACCESS_DENIED opening remote file \rwtest.txt
smb: \> exit

student@heimdall:~$ 

6. Bonus

  • [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.
Rezolvare
root@heimdall:~# touch /etc/rsyncd.conf

root@heimdall:~# rsync --daemon

root@heimdall:~# netstat -tlnp | grep rsync
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      5166/rsync      
tcp6       0      0 :::873                  :::*                    LISTEN      5166/rsync      
  • [01].b. Creați directoarele /home/student/public-files și /home/student/private-files pe mașina virtuală
Rezolvare
student@heimdall:~$ mkdir public-files

student@heimdall:~$ touch public-files/public.txt

student@heimdall:~$ mkdir private-files

student@heimdall:~$ touch private-files/private.txt
  • [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.
Rezolvare
root@heimdall:~# cat /etc/rsyncd.conf
[public-files]
        path = /home/student/public-files
        comment = student's public files

[private-files]
        path = /home/student/private-files
        comment = student's private files
        auth users = student
        secrets file = /etc/rsyncd.secrets
        
root@heimdall:~# cat /etc/rsyncd.secrets
student:student

root@heimdall:~# chmod 600 /etc/rsyncd.secrets 

root@heimdall:~# ls -l /etc/rsyncd.secrets 
-rw------- 1 root root 16 Jan 26 21:39 /etc/rsyncd.secrets



student@mjolnir:~$ rsync -avz heimdall.local::private-files /tmp/priv
Password: 
receiving incremental file list
./
private.txt

sent 88 bytes  received 155 bytes  162.00 bytes/sec
total size is 0  speedup is 0.00

student@mjolnir:~$ rsync -avz heimdall.local::public-files /tmp/pub
receiving incremental file list
./
public.txt

sent 56 bytes  received 113 bytes  338.00 bytes/sec
total size is 0  speedup is 0.00
  • [02]. samba
  • [02].a. Folosind samba + swat, creați pe mașina fizică un share rw accesibil public. Testati folosind mașina virtuală (Hint: guest-ok)
Rezolvare
Shares > create share ("samba-public-rw") > read only:no ; guest ok:yes
Commit changes
  • [02].b. Folosind samba + swat, creați pe mașina fizică un share ro accesibil public. Testati folosind mașina virtuală (Hint: guest-ok)
Rezolvare
Shares > create share ("samba-public-ro") > read only:yes ; guest ok:yes
Commit changes
laboratoare/laborator-07.txt · Last modified: 2012/01/26 21:42 by george.milescu