Nov 3, 2023

Tipovi file sistema

 Linux podržava različite tipove fajl sistema koji omogućavaju organizaciju i čuvanje podataka na disku. Evo nekoliko najčešće korišćenih fajl sistema na Linuxu:

  1. ext4 (Fourth Extended Filesystem): ext4 je jedan od najpopularnijih fajl sistema na Linuxu i često se koristi za sistemsku particiju. On podržava velike fajl sisteme i ima dobar odnos između performansi i pouzdanosti.

  2. XFS (X File System): XFS je visoko performantan fajl sistem koji je dobar za rad sa velikim fajlovima i particijama. Koristi se često za servere i skladištenje podataka.

  3. Btrfs (B-tree File System): Btrfs je moderan fajl sistem koji podržava napredne funkcije poput "snapshot"-a, kompresije i detekcije grešaka. Može se koristiti za sve vrste fajlova i particija.

  4. ZFS (Zettabyte File System): ZFS je izuzetno moćan fajl sistem koji nudi napredne mogućnosti za upravljanje podacima, uključujući podršku za RAID, kompresiju i "snapshot"-e. Ipak, nije uključen u jezgro Linux kernela po podrazumevanim podešavanjima.

  5. NTFS (New Technology File System): NTFS je Microsoftov fajl sistem, ali Linux ima podršku za čitanje i pisanje NTFS particija. Ovo je korisno ako trebate pristupiti Windows particijama sa Linuxa.

  6. FAT32 (File Allocation Table 32): FAT32 je jednostavan fajl sistem koji je podržan na svim platformama. Koristi se često za USB fleš drajvove i memorijske kartice.

  7. exFAT (Extended File Allocation Table): exFAT je fajl sistem optimizovan za velike fajlove i fleš drajvove. Koristi se često za prenosive uređaje.

Ovo su samo neki od fajl sistema koji su podržani na Linuxu. Izbor fajl sistema zavisi od vaših specifičnih potreba i zahteva. Na Linuxu možete formatirati particije u skoro svakom od ovih fajl sistema, u zavisnosti od vaše upotrebe.

lsblk

 lsblk je komanda koja se koristi za prikazivanje informacija o blokovima skladišta (diskovima i particijama) na Linux sistemu. Ova komanda vam omogućava da vidite kako su diskovi i particije povezani i kako su montirani u direktorijume.

Evo osnovnog oblika komande lsblk:

lsblk

Ovo će prikazati tabelu koja sadrži informacije o svim blokovima skladišta na sistemu, uključujući fizičke i logičke diskove, particije i ostale uređaje. Evo primera izlaza komande lsblk:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   100G  0 disk
├─sda1   8:1    0   500M  0 part /boot
├─sda2   8:2    0    20G  0 part /
└─sda3   8:3    0  79.5G  0 part /home
sdb      8:16   0   500G  0 disk
├─sdb1   8:17   0  100G  0 part /mnt/data
├─sdb2   8:18   0   50G  0 part /mnt/backups
└─sdb3   8:19   0  350G  0 part

Ovde su neke od važnih kolona:

  • NAME: Ime bloka skladišta.
  • MAJ:MIN: Major i minor brojevi uređaja.
  • RM: "Removeable" - 0 ako uređaj nije izmenjiv, 1 ako jeste.
  • SIZE: Veličina uređaja ili particije.
  • RO: "Read-Only" - 0 ako uređaj/particija nije samo za čitanje, 1 ako jeste.
  • TYPE: Tip uređaja (disk, particija, itd.).
  • MOUNTPOINT: Putanja do mesta na kojem je uređaj ili particija montirana (ako je montirana).

U primeru izlaza komande, možete videti da postoje dva diska (sda i sdb) i kako su povezane particije na svakom disku. Takođe možete videti da li su particije montirane i na kojim putanjama.

Komanda lsblk je korisna za brzo pregledavanje skladišnog prostora na sistemu i identifikaciju uređaja i particija.

Podešavanje prava pristupa

 Da biste podesili prava pristupa (permissions) na Linux sistemu, koristite komandu chmod. Prava pristupa određuju ko može da čita, piše ili izvršava određeni fajl ili direktorijum. Evo kako koristiti komandu chmod:

  1. Sintaksa komande chmod:

    chmod [opcije] prava fajl_ili_direktorijum

    Gde su:

    • opcije: Opcioni argumenti komande, kao što su -R za rekurzivno menjanje prava za direktorijume i fajlove unutar datog direktorijuma.
    • prava: Specifikacija prava u obliku brojeva ili simbola. Koristi se za definisanje prava za vlasnika (owner), grupu (group) i ostale (others).
    • fajl_ili_direktorijum: Putanja do fajla ili direktorijuma za koje želite da promenite prava.
  2. Korišćenje brojeva za prava:

    Prava se obično definišu brojevima. Svaka kombinacija prava ima svoju numeričku vrednost:

    • 4: Dozvola za čitanje (read).
    • 2: Dozvola za pisanje (write).
    • 1: Dozvola za izvršavanje (execute).
    • 0: Bez dozvole.

    Prava za vlasnika, grupu i ostale se obično definišu kao trocifreni brojevi. Prva cifra predstavlja prava vlasnika, druga cifra prava grupe, a treća cifra prava ostalih. Na primer, chmod 755 fajl.txt postavlja prava tako da vlasnik može da čita, piše i izvršava fajl, dok grupa i ostali mogu samo da čitaju i izvršavaju fajl.

  3. Korišćenje simbola za prava:

    Prava se takođe mogu definisati korišćenjem simbola. Osnovni simboli za prava uključuju:

    • +: Dodaj prava.
    • -: Ukloni prava.
    • =: Postavi prava na tačno navedene vrednosti.

    Na primer, chmod u+rwx,g+rx,o+r fajl.txt dodaje vlasniku prava za čitanje, pisanje i izvršavanje, grupi prava za čitanje i izvršavanje, a ostalima pravo za čitanje fajla.

  4. Primeri:

    • Postavljanje prava tako da samo vlasnik može da izvršava skriptu:

      chmod 700 skripta.sh
    • Dodeljivanje prava za čitanje i pisanje vlasniku i grupi:

      chmod u+rw,g+rw fajl.txt
    • Uklanjanje prava za izvršavanje od svih korisnika osim vlasnika:

      chmod go-x fajl.txt
    • Rekurzivna promena prava za sve fajlove i direktorijume u određenom direktorijumu:

      chmod -R 755 /putanja/do/direktorijuma

Podesite prava pažljivo, jer nepravilno postavljena prava mogu dovesti do bezbednosnih problema ili problema sa funkcionalnošću. Preporučuje se da pravilno razumete i primenjujete prava pristupa na vašem Linux sistemu.

Komande setfacl i getfacl

setfacl i getfacl su Linux komande koje se koriste za upravljanje i pregled kontrolnih listi pristupa (ACL) na datotekama i direktorijumima. ACL omogućava detaljniju kontrolu pristupa nego osnovni sistem prava pristupa.

Evo kako se koriste:

setfacl:

  • setfacl -m permissions /path/to/file: Dodaje ACL na datoteku ili direktorijum. Na primer: setfacl -m u:jane:rwx /path/to/file dodeljuje korisnici "jane" prava za čitanje, pisanje i izvršavanje na datoteci.

  • setfacl -x permissions /path/to/file: Uklanja ACL sa datoteke ili direktorijuma. Na primer: setfacl -x u:jane /path/to/file uklanja sve pristupe korisniku "jane" sa datoteke.

  • setfacl -b /path/to/file: Uklanja sve ACL sa datoteke ili direktorijuma.

getfacl:

  • getfacl /path/to/file: Prikazuje trenutne ACL na datoteci ili direktorijumu. Na primer:
# file: /path/to/file
# owner: user1
# group: group1
user::rw-
user:jane:r-x
group::r--
mask::r-x
other::---

Ovde se prikazuju prava pristupa za vlasnika ("user1"), korisnika "jane", grupu "group1" i ostale korisnike.

Ove komande su korisne kada želite da detaljno upravljate pristupima na datotekama i direktorijumima, posebno u višekorisničkim okruženjima gde osnovna prava pristupa nisu dovoljna.


Primer za uklanjanje prava ostalim korisnicima

Da biste uklonili prava za sve ostale korisnike (all others) sa određene datoteke ili direktorijuma, koristite komandu setfacl. Evo kako to možete učiniti:

setfacl -m o::--- /putanja/do/datoteke-ili-direktorijuma

Ovde -m označava da želimo da izmenimo ACL (Access Control List), o::--- postavlja prava za "all others" na "---" što znači da se sva prava uklanjaju. /putanja/do/datoteke-ili-direktorijuma je putanja do datoteke ili direktorijuma na koji želite primeniti ove promene.

Na primer, ako želite da uklonite sva prava za sve ostale korisnike sa datoteke "file.txt", koristite sledeću komandu:

setfacl -m o::--- /putanja/do/file.txt

Ovo će ukloniti sva prava za sve ostale korisnike sa datoteke "file.txt".


Podešavanje default prava

Opcija -d se koristi za postavljanje podrazumevanih ACL prava za direktorijum.

Evo primera kako biste mogli koristiti setfacl -d za postavljanje podrazumevanih ACL prava na direktorijum:

setfacl -d -m u:jane:r-x /path/to/directory

Ova komanda postavlja podrazumevane ACL prava za korisnika "jane" na direktorijum "directory". Prava su postavljena na r-x, što znači da korisnik "jane" ima dozvolu za čitanje i izvršavanje, ali ne i pisanje.

Kada se postave podrazumevana ACL prava na direktorijum, ta prava će se primenjivati na sve nove datoteke i direktorijume koji se kreiraju unutar tog direktorijuma. To omogućava preciznu kontrolu nad pravima korisnika za datoteke koje se kreiraju unutar tog direktorijuma.

Napomena: ACL prava omogućavaju detaljniju kontrolu nad pravima za korisnike i grupe, tako da možete precizno odrediti pristup datotekama i direktorijumima u sistemu.