curs 2 - gestiunea sistemului de...
TRANSCRIPT
Curs 2Gestiunea sistemului de fis, iere
Gestiunea Serviciilor de Ret,ea
13 octombrie 2011
GSR Curs 2, Gestiunea sistemului de fis,iere 1/49
Moto
The Unix ‘file system’. Sure it corrupts your data, but look howfast it is!
GSR Curs 2, Gestiunea sistemului de fis,iere 2/49
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 3/49
Prerequisites
I “Cartea de USO”:http://books.google.com/books?id=_JFGzyRxQGcC
I Capitolul 4 – Sisteme de fis, iereI Capitolul 10 – Elemente de securitate
GSR Curs 2, Gestiunea sistemului de fis,iere 4/49
Outline
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 5/49
Sistemul de fis, iere
I componenta cea mai vizibila utilizatorului unui sistem deoperare
I perspectiva utilizatoruluiI ierarhie de fis, iere s, i directoareI ierarhie, cale, separator, nume, drepturi de acces, utilizator,
grup, dimensiune, tip
I perspectiva sistemului de operareI algoritmi s, i structuri de date pentru organizarea eficienta s, i
accesul scalabil la informat, ie pe un suport (de obicei fizicpersistent)
I superbloc, inode, bitmap, bloc, dentry, pointeri
GSR Curs 2, Gestiunea sistemului de fis,iere 6/49
Sisteme de fis, iere ın Linux
I ext, ext2, ext3, ext4
I XFS, JFS, Reiserfs
I NTFS, FAT, HFS
I SMB/CIFS, NFS
I procfs, sysfs, ramfsI interfat, a cu utilizatorul
I nume scurteI separatorul este /I directorul radacina este /
GSR Curs 2, Gestiunea sistemului de fis,iere 7/49
Implementarea unui sistem de fis, iere
GSR Curs 2, Gestiunea sistemului de fis,iere 8/49
Structuri de baza pentru un sistem de fis, iere
GSR Curs 2, Gestiunea sistemului de fis,iere 9/49
Structuri de baza pentru un sistem de fis, iere
I file: o instant, a de fis, ier deschis
I dentry: numele unui fis, ier
I inode: un fis, ier aflat pe disc (recunoscut prin inode number,nu prin nume)
I superblock: metadata de metadate (bitmap, descriereazonelor de date, descrierea zonelor de inode-uri)
GSR Curs 2, Gestiunea sistemului de fis,iere 10/49
Filesystem Hierarchy Standard
GSR Curs 2, Gestiunea sistemului de fis,iere 11/49
Ierarhia sistemului de fis, iere ın Linux
I FHS (Filesystem Hierarchy Standard)
I / – directorul radacina
I /bin/ – executabile de baza (disponibile ın single user mode)
I /boot/ – fis, ierele bootloaderului
I /dev/ – dispozitive
I /etc/ – fis, iere de configurare la nivelul sistemului
I /home/ – directoarele home ale utilizatorilor
I /lib/ – biblioteci pentru binarele din /bin/ s, i /sbin/
I /media/, /mnt/ – mount points
I /sbin/ – executabile pentru superuser
I /tmp/ – date temporare; de obicei s, terse la repornire
I /usr/ – sistem de fis, iere secundar (/usr/bin/, /usr/lib/,/usr/sbin/)
I /var/ – fis, iere variabile (cont, inutul se schimba)
GSR Curs 2, Gestiunea sistemului de fis,iere 12/49
What goes where?
I executabilul gccI /usr/bin/
I fis, ierul vsftpd.confI /etc/
I fis, ierele imagine ale utilizatorului anaI /home/ana/ (∼ana/)
I executabilul adduserI /usr/sbin/
I fis, ierul mail.logI /var/mail/
I imaginea de kernel vmlinuz-2.6.31I /boot/
GSR Curs 2, Gestiunea sistemului de fis,iere 13/49
Outline
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 14/49
Parcurgerea ierarhiei unui sistem de fis, iere
I unde ma aflu?I razvan@valhalla:/usr/local$ pwd
/usr/local
razvan@valhalla:/usr/local$ echo $PWD
/usr/local
I unde ma pot duce?I razvan@valhalla:/usr/local$ ls
bin etc games include lib mail man myapps sbin share src
razvan@valhalla:/usr/local$ ls -F
bin/ etc/ games/ include/ lib/ mail/ man@ myapps/ sbin/ share/ src/
I ma ducI razvan@valhalla:/usr/local$ cd myapps/patches/
razvan@valhalla:/usr/local/myapps/patches$ cd /etc/apache2
GSR Curs 2, Gestiunea sistemului de fis,iere 15/49
Cale (path)
I absolutaI /etc/apache2/I /var/mail/mail.logI /home/student/file.txtI ıncepe de la directorul radacina – ıncepe cu / (slash)
I relativaI apache2/ (din /etc/)I file.txt (din /home/student/)
I intrari specialeI . – directorul curent (self reference)I .. – directorul parinte
GSR Curs 2, Gestiunea sistemului de fis,iere 16/49
Lucrul cu fis, iere
I creareI touch a.txt
I s, tergereI rm, unlink
I copiereI cp a.txt b.txt
I mutare/redenumireI mv a.txt new a.txt
I afis, are cont, inutI catI head, tailI vi, emacs, nano, joe, mcedit
GSR Curs 2, Gestiunea sistemului de fis,iere 17/49
Lucrul cu directoare
I creareI mkdir my dir
I s, tergereI rmdir my dir (doar pentru directoare goale)I rm -r my dir (s, tergere recursiva)
I copiereI cp -r my dir my dir copy
I mutareI mv my dir new my dir
I afis, are cont, inutI ls
GSR Curs 2, Gestiunea sistemului de fis,iere 18/49
Nice to know
I $OLDPWD (fostul director)
I cd - (echivalent cu cd $OLDPWD)
I cd (echivalent cu cd ∼)
I mkdir -p (creeaza o cale de directoare)
I pushd, popd (stiva de directoare)
GSR Curs 2, Gestiunea sistemului de fis,iere 19/49
Outline
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 20/49
Tipuri de fis, iere
I razvan@valhalla:/tmp/pisr-2/type$ ls -lF
total 1
brw-r--r-- 1 root root 240, 1 Oct 15 09:49 block-device
crw-r--r-- 1 root root 42, 1 Oct 15 09:49 char-device
drwxr-xr-x 2 razvan razvan 1024 Oct 15 09:48 directory/
-rw-r--r-- 1 razvan razvan 0 Oct 15 09:48 file
lrwxrwxrwx 1 razvan razvan 4 Oct 15 09:48 link -> file
prw-r--r-- 1 razvan razvan 0 Oct 15 09:48 pipe|
I regular file, directory, link, char device, block device, named pipe, Unixsocket
GSR Curs 2, Gestiunea sistemului de fis,iere 21/49
Informat, ii despre fis, iere
I ls -lI file
I razvan@valhalla:/tmp/pisr-2/type$ file file
file: empty
razvan@valhalla:/tmp/pisr-2/type$ file /usr/bin/gcc-4.3
/usr/bin/gcc-4.3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
I statI razvan@valhalla:/tmp/pisr-2/type$ stat /bin/ping
File: ‘/bin/ping’
Size: 33576 Blocks: 72 IO Block: 4096 regular file
Device: 803h/2051d Inode: 186640 Links: 1
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-10-14 15:05:34.000000000 +0300
Modify: 2009-08-28 07:30:27.000000000 +0300
Change: 2009-09-07 19:21:17.000000000 +0300
GSR Curs 2, Gestiunea sistemului de fis,iere 22/49
Link-uri
I legaturi catre alte fis, iereI link-uri hard (hard links)
I ln a.txt b.txtI acelas, i inode, doua nume (dentry-uri) diferite
I link-uri simbolice (symbolic links, symlinks)I ln -s a.txt b.txtI inode nou; inode-ul cont, ine numele (dentry-ul) fis, ierului init, ial
GSR Curs 2, Gestiunea sistemului de fis,iere 23/49
Fis, iere de tip dispozitiv
I dispozitive de tip caracterI lenteI stream de octet, iI tastatura, mouse, dispozitive seriale
I dispozitive de tip blocI rapideI acces aleator la informat, ie (se poate face seek)I citire la nivel de bloc (chunk de informat, ie)I suport pentru sisteme de fis, iereI hard-disk-uri, CD-ROM/DVD-ROM drives, USB flash drives
GSR Curs 2, Gestiunea sistemului de fis,iere 24/49
Outline
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 25/49
Redirectari
I command > file (redirectare ies, ire standard)
I command < file (redirectare intrare standard)
I command 2 > file (redirectare eroare standard)I command &> file (redirectare ies, ire s, i eroare standard)
I echivalenta cu command > file 2>&1
I command >> file (redirectare ies, ire standard + append)I newfd>&oldfd (=dup2(oldfd,newfd))
I ce efect are comandaI command 2>&1 > /dev/null | grep gogu
I command <<EOF (here document)
I command <<< ”ana are mere” (here string)
I >(list), <(list)
GSR Curs 2, Gestiunea sistemului de fis,iere 26/49
Cautarea unui fis, ier
I whereis /bin/bashI locate ”string”
I foloses, te un index
I updatedb /etc/updatedb.conf
GSR Curs 2, Gestiunea sistemului de fis,iere 27/49
find
I cautarea ıntr-o ierarhie de directoare
I find -name ’*.c’
I find -type f
I find -type f -exec grep ’aaa’ {} \;I find -type f -name ’*∼’ | xargs rm
GSR Curs 2, Gestiunea sistemului de fis,iere 28/49
Arhivare s, i comprimare
I arhivare: “concatenarea” mai multor fis, iere
I comprimare: reducerea dimensiunii unui fis, ier
I arhivare folosind tar, ar
I comprimare folosind bzip2, gzip
GSR Curs 2, Gestiunea sistemului de fis,iere 29/49
Arhivare s, i comprimare (2)
I .zip: zip, unzip
I .gz: gzip, gunzip
I .bz2: bzip2, bunzip2
I ar (.a, .deb)I operat, ii cu arhive
I arhivareI dezarhivareI listare cont, inutI adaugare, eliminare
GSR Curs 2, Gestiunea sistemului de fis,iere 30/49
Outline
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 31/49
Discretionary Access Control
I exista ownership
I se pot acorda drepturi de acces de catre owner
I se poate schimba owner-ul (de root)
GSR Curs 2, Gestiunea sistemului de fis,iere 32/49
Drepturi de acces
I liste de control al accesuluiI fiecarui fis, ier i se asociaza un set de utilizator s, i drepturi
I matrice de drepturiI mai put, ine drepturi, construct, ie mai eficenta
I user, group, others
I read, write, execute
GSR Curs 2, Gestiunea sistemului de fis,iere 33/49
Drepturi de acces (2)
GSR Curs 2, Gestiunea sistemului de fis,iere 34/49
Drepturi de acces (3)
I Drepturi pe fis, iereI read (cat file)I write (echo > file, vi file)I execute (./file)
I Drepturi pe directoareI read (+execute) (ls)I write (+execute) (rmdir, rm, touch)I execute (cd)
GSR Curs 2, Gestiunea sistemului de fis,iere 35/49
umask
I Masca de creareI Dreptul implicit de creare
I pentru fis, iere: 666 & umaskI pentru directoare: 777 & umask
I razvan@valhalla:/tmp/pisr-2/type$ touch a.txt
razvan@valhalla:/tmp/pisr-2/type$ ls -l a.txt
-rw-r--r-- 1 razvan razvan 4 Oct 15 17:33 a.txt
razvan@valhalla:/tmp/pisr-2/type$ umask
0022
razvan@valhalla:/tmp/pisr-2/type$ umask 047
razvan@valhalla:/tmp/pisr-2/type$ touch b.txt
razvan@valhalla:/tmp/pisr-2/type$ ls -l b.txt
-rw--w---- 1 razvan razvan 0 Oct 15 17:33 b.txt
GSR Curs 2, Gestiunea sistemului de fis,iere 36/49
setuid, setgid, sticky
I setuidI un fis, ier se executa cu drepturile celui care det, ine fis, ierulI ping, traceroute, passwd
I razvan@valhalla:/tmp/pisr-2/type$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 41296 Jul 24 07:29 /usr/bin/passwd
I setgidI fis, ierele s, i subdirectoarele directorului folosesc acelas, i grup
I stickyI /tmp/
GSR Curs 2, Gestiunea sistemului de fis,iere 37/49
Outline
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 38/49
Discuri s, i partit, ii
I suport pentru instalarea sistemelor de fis, iere
I sectoare s, i blocuri
I partit, ii: primare (maxim 4), extinsa, logiceI /dev/sdxN
I x = {a, b, c, d, ...} - numarul disculuiI N = {1, 2, 3, 4, ...} - numarul partit, iei din cadrul discului
I nomenclatura GRUB difera (dar nu tot timpul)I (hd0,4) = /dev/[sh]da5
GSR Curs 2, Gestiunea sistemului de fis,iere 39/49
Partit, ionare
I fdisk /dev/sdaI utilitar interactiv
I fdisk -lI listarea partit, iilor
I Dimensiunea partit, iilorI razvan@valhalla:/tmp/pisr-2/type$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext3 9.2G 707M 8.0G 8% /
tmpfs tmpfs 943M 0 943M 0% /lib/init/rw
udev tmpfs 10M 204K 9.9M 2% /dev
tmpfs tmpfs 943M 300K 942M 1% /dev/shm
/dev/sda8 ext3 183M 78M 96M 45% /boot
/dev/sda9 ext3 138G 122G 9.5G 93% /home
/dev/sda10 ext3 464M 56M 385M 13% /tmp
/dev/sda6 ext3 9.2G 8.2G 551M 94% /usr
/dev/sda7 ext3 19G 1.1G 17G 7% /var
GSR Curs 2, Gestiunea sistemului de fis,iere 40/49
Formatare
I razvan@valhalla:/tmp/pisr-2/type$ ls /sbin/mkfs*
/sbin/mkfs /sbin/mkfs.cramfs /sbin/mkfs.ext3 /sbin/mkfs.ext4dev
/sbin/mkfs.bfs /sbin/mkfs.ext2 /sbin/mkfs.ext4 /sbin/mkfs.minix
I demo (dd + mkfs.ext2)
GSR Curs 2, Gestiunea sistemului de fis,iere 41/49
Partit, ii de swap
I mkswapI ”formateaza” cu swap
I swapon, swapoffI activeaza/dezactiveaza swap-ul
I demo (dd + mkswap + swapon)
GSR Curs 2, Gestiunea sistemului de fis,iere 42/49
Montare/demontare
I mount /dev/hda1 /mnt/hda1
I umount /mnt/hda1
I /mnt/ – pentru montari temporare
I /media/ – pentru montari permanente, CD-ROM drive, USBflash drive
I mount -a
I mount, cat /proc/mounts
GSR Curs 2, Gestiunea sistemului de fis,iere 43/49
chroot
I schimbarea directorului radacinaI chroot /mnt/hda1I chroot /mnt/hda1 passwd
I atat comanda cat s, i apel de biblioteca/sistem
I securitate – chroot jail
GSR Curs 2, Gestiunea sistemului de fis,iere 44/49
/etc/fstab
I mount -a
I file system table
I informat, ii persistente de montare a sistemelor de fis, iere
I demo
GSR Curs 2, Gestiunea sistemului de fis,iere 45/49
Outline
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 46/49
Cuvinte cheie
I sistem de fis, iere
I fis, iere, directoare
I ext, ext2, ext3, ext4
I FHS
I cale relativa/absoluta
I link-uri
I ls, pwd, cd
I touch, mkdir, rm, rmdir
I cp, mv
I link-uri simbolice, hard
I dispozitive caracter, bloc
I mknod, ln
I redirectari
I whereis, locate, find
I arhivare
I tar, gzip, bzip2, zip
I drepturi de acces
I chmod, chown, umask
I setuid, setgid
I partit, ii, fdisk
I formatare, mkfs
I montare, mount, umount
I /etc/fstab
GSR Curs 2, Gestiunea sistemului de fis,iere 47/49
Resurse utile
I http://www.pathname.com/fhs/
I http://en.wikibooks.org/wiki/Guide_to_Unix/Commands/
File_System_Utilities
I http://www.faqs.org/docs/Linux-mini/Partition.html
GSR Curs 2, Gestiunea sistemului de fis,iere 48/49
Outline
Sistemul de fis, iere ın Linux
Operat, ii de baza ın sistemul de fis, iere
Tipuri de fis, iere
Operat, ii avansate ın sistemul de fis, iere
Securitatea sistemelor de fis, iere
Operat, ii low-level ın sistemul de fis, iere
Keywords
Intrebari
GSR Curs 2, Gestiunea sistemului de fis,iere 49/49