Pliki i systemy plików

PLIKI

Plik

  • jest zbiorem powiązanych ze sobą informacji, zdefiniowanych przez jego twórcę

  • w plikach przechowuje się programy oraz dane (dane mogą być liczbowe, tekstowe, alfanumeryczne)

  • format plików może być dowolny lub ściśle określony

  • zawartość plików można traktować jako ciąg bitów, bajtów, wierszy lub rekordów

Dla wygody użytkownika system operacyjny:

  • tworzy logicznie jednolity obraz magazynowania informacji

  • definiuje pliki, czyli jednostki logiczne przechowywania informacji, niezależne od fizycznych własności użytych urządzeń pamięci

  • umożliwia tworzenie i usuwanie plików

  • dostarcza elementarnych operacji do manipulowania plikami

  • odwzorowuje pliki na obszary pamięci pomocniczej

  • odwzorowuje pliki na urządzenia fizyczne

  • składuje pliki na trwałych nośnikach pamięci

Wyróżniamy następujące rodzaje plików:

  • zwykłe pliki (ASCII lub binarne)

  • katalogi

  • dowiązania symboliczne

  • urządzenia blokowe (modelujące dyski)

  • urządzenia znakowe (modelujące terminale, drukarki, adaptery sieciowe, modemy, itp.)

  • potoki nazwane, łącza nazwane, kolejki FIFO (specjalne pliki łączące procesy)

  • gniazda

Informacje o plikach są dostępne poprzez komendę ls:

# ls -F
backup/  ccna/   etc/     HOWTOS@  linux-doc/   mnt/   root/
bin/     cdrom@  floppy@  initrd/  lost+found/  opt/   sbin/
usr/     boot/    dev/    home/    lib/     misc/      proc/
tmp/     var/
# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda2     ext4     2925332   2476332    389560  87% /
/dev/sda4     ext4     1050328    956308     72340  93% /home
none         tmpfs      127836         0    127836   0% /dev/shm
/dev/sda3     ext4    20648448   5187560  14412008  27% /usb-home

Nazwy plików:

  • bezwzględne – ścieżka nazwy pliku zaczyna się w korzeniu struktury plików, np. /etc/sysc/config/hwconfig

  • względne – ścieżka nazwy pliku zaczyna się w bieżącym (roboczym) katalogu, np. ../spool/mail

Własności plików:

# ls -la
drwxr-xr-x  31 note     kmk     3072 Feb  4 12:31 .
drwxr-xr-x  10 root     kmk     1024 Mar 19  1998 ..
-rw-r--r--   1 note     kmk      977 Jan 27 18:07 .history
-rw-rw-r--   1 note     kmk      625 Dec 15  1997 .login
-rw-rw-r--   1 note     kmk       51 Nov 17  1997 .logout
-rw-rw-r--   1 note     kmk     1410 Feb 13  1998 .tcshrc
drwxr-xr-x   7 note     kmk     1024 Jan  5 21:06 2dhf_dist
drwx------   2 note     kmk     1024 Mar 20  1998 Mail

W systemach Unix/Linux mamy do czynienia domyślnie z uznaniową kontrolą dostępu (DAC, discretionary access control)

SELinux pozwala na stosowanie obowiązkowej kontroli dostępu (MAC, mandatory access control). W systemach Windows nosi on nazwę obowiązkowej kontroli integralności (mandatory integrity control).

Własności plików i katalogów:

plik

katalog

prawo odczytu pliku

prawo przeglądania zawartości

r

4

prawo zapisu pliku

prawo tworzenia plików

w

2

prawo wykonania pliku

prawo dostępu do katalogu

x

1

Przykłady:

 700 = rwx------ = u+rwx
 711 = rwx--x--x = u+rwx,go+x
 755 = rwxr-xr-x = u=rwx,go=rx
1755 = rwxr-xr-t = u=rwx,go=rx,+t
2511 = r-x--s--x = u=rx,g=xs,o=x
4511 = r-s--x--x = u=rxs,go=x

Prawa dostępu do plików można definiować/zmieniać poprzez komendę chmod; zob. Prawa dostępu do plików i ich zmiana.

Linux daje możliwość kontroli dostępu do plików i katalogów poprzez tzw. listy kontroli dostępu zdefiniowane przez POSIX Access Control Lists; zob. ACL.

Na serwerze polon/tor komenda ls -l /etc/| grep yum daje taki wynik:

drwxr-xr-x.  6 root root    4096 Dec 31 01:05 yum
-rw-r--r--   1 root root     970 Nov 15  2016 yum.conf
drwxr-xr-x.  2 root root    4096 Jan 21 22:09 yum.repos.d

Kropka następująca po prawach dostępu oznacza, że plik/katalog ma ustawione uprawnienia kontrolowane przez SELinuksa (te informacje związane z bezpieczeństwem określa się mianem kontekstu SELinuksa). Można je sprawdzić przy pomocy komendy ls [-d] -Z. Zmiany dokonuje się przy pomocy chcon.

SYSTEMY PLIKÓW

Pliki są częścią jakiegoś systemu pliku, który jest odpowiedzialny za zorganizowanie ich w logiczne hierarchiczne struktury składające się z katalogów, plików, dowiązań symbolicznych (miękkich), itp.

Pliki, itd. są przechowywane w blokach na urządzeniu fizycznym.

Uniksowy/Linuksowy system plików traktuje to urządzenie jako liniowy zbiór bloków.

Dla systemu plików fizyczny układ bloków na dysku jest bez znaczenia. Zadaniem sterownika urządzenia blokowego jest powiązanie numeru bloku z numerem cylindra, głowicy, sektora.

Popularne systemy plików:

  • MSDOS/Windows: FAT/VFAT, NTFS

  • ISO9660 dla płyt CD/DVD

  • IMB OS/2: HPFS

  • Mac OS X: HFS+

  • Linux: EXT2/EXT3/EXT4, Btrfs, XFS, JFS, Reiserfs

  • sieciowe systemy plików: NFS, SMB/CIFS, NCP

Do tworzenia systemów plików służy komenda mkfs -t type device (zob. man mkfs) lub komendy typu mkfs.ext4 device, mkfs.vfat device, np.:

# mkfs -t ext4 /dev/vdb2
# mkfs.ext4 /dev/vdb1
# mkfs.vfat /dev/vdb2
# mkfs.vfat -c -F 32 /dev/vdb1

System operacyjny Linux potrafi obsłużyć wiele różnych systemów plików dzięki zastosowaniu tzw. wirtualnego systemu plików (VFS, Virtual File System).

VFS stanowi warstwę interfejsu pomiędzy systemem operacyjnym i różnymi systemami plików.

Podsystem plikowy jądra Linuksa ma bardzo abstrakcyjne pojęcie o systemie plików. Wywołania systemowe open(), read(), write() działają niezależnie od struktury systemu plików i od fizycznych cech nośnika.

../../../_images/vfs-schemat.png

Wspólny model plików składa się z obiektów następujących typów:

  • obiekt superbloku przechowuje informacje dotyczące zamontowanego systemu plików (w przypadku dyskowego systemu plików jest to blok kontrolny systemu plików)

  • obiekt i-węzła przechowuje informacje o danym pliku (w przypadku dyskowego systemu plików jest to blok kontrolny pliku)

  • obiekt pliku przechowuje informacje o powiązaniu między otwartym plikiem a procesem (informacja istnieje tylko w pamięci jądra)

  • obiekt pozycji katalogu przechowuje informacje o powiązaniu pozycji katalogu z odpowiednim plikiem

Rodzaje systemów plików:

 0  Empty           1c  Hidden Win95 FA 70  DiskSecure Mult bb  Boot Wizard hid
 1  FAT12           1e  Hidden Win95 FA 75  PC/IX           be  Solaris boot
 2  XENIX root      24  NEC DOS         80  Old Minix       c1  DRDOS/sec (FAT-
 3  XENIX usr       39  Plan 9          81  Minix / old Lin c4  DRDOS/sec (FAT-
 4  FAT16 <32M      3c  PartitionMagic  82  Linux swap      c6  DRDOS/sec (FAT-
 5  Extended        40  Venix 80286     83  Linux           c7  Syrinx
 6  FAT16           41  PPC PReP Boot   84  OS/2 hidden C:  da  Non-FS data
 7  HPFS/NTFS       42  SFS             85  Linux extended  db  CP/M / CTOS / .
 8  AIX             4d  QNX4.x          86  NTFS volume set de  Dell Utility
 9  AIX bootable    4e  QNX4.x 2nd part 87  NTFS volume set df  BootIt
 a  OS/2 Boot Manag 4f  QNX4.x 3rd part 8e  Linux LVM       e1  DOS access
 b  Win95 FAT32     50  OnTrack DM      93  Amoeba          e3  DOS R/O
 c  Win95 FAT32 (LB 51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor
 e  Win95 FAT16 (LB 52  CP/M            9f  BSD/OS          eb  BeOS fs
 f  Win95 Ext'd (LB 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  EFI GPT
10  OPUS            54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12    55  EZ-Drive        a6  OpenBSD         f0  Linux/PA-RISC b
12  Compaq diagnost 56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor
14  Hidden FAT16 <3 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor
16  Hidden FAT16    61  SpeedStor       a9  NetBSD          f2  DOS secondary
17  Hidden HPFS/NTF 63  GNU HURD or Sys ab  Darwin boot     fd  Linux raid auto
18  AST SmartSleep  64  Novell Netware  b7  BSDI fs         fe  LANstep
1b  Hidden Win95 FA 65  Novell Netware  b8  BSDI swap       ff  BBT

Pliki w systemie Unix/Linux:

  • każdy plik jest elementem jakiegoś katalogu

  • katalog jest specjalnym rodzajem pliku, który zawiera listę nazw plików wraz z odpowiadającymi im numerami i-węzłów (i-nodes)

  • i-węzeł jest strukturą danych zawierającą wszystkie dane o pliku (katalogu): numer bloku na~dysku, nazwę właściciela pliku, prawa dostępu i czas ostatniego dostępu oraz numery bloków zawierające dane; każdy i-węzeł to 128 B (ext3), 256 B (ext4) danych

System plików EXT2/EXT3

../../../_images/ext2-struktura.png

Superblok to struktura danych opisująca globalne parametry systemu plików. Przy montowaniu jądro wczytuje superblok związany z danym systemem plików do pamięci operacyjnej.

Komendy tune2fs -l /dev/vdb1 oraz dumpe2fs /dev/vdb1 pozwalają uzyskać szczegółowe dane o superbloku i innych danych definiujących system plików EXT2/EXT3/EXT4.

I-węzeł w systemie plików EXT2/EXT3:

  • typ pliku i prawa dostępu

  • identyfikator właściciela

  • długość pliku w bajtach

  • czas ostatniego dostępu do pliku

  • czas ostatniej zmiany i-węzła

  • czas ostatniej modyfikacji pliku

  • licznik sztywnych dowiązań

  • liczba bloków danych pliku

  • wskaźniki do bloków danych

../../../_images/inode-schemat.png

Przed użyciem systemu plików trzeba wykonać dwie podstawowe operacje:

  • rejestrowanie – wykonywanie albo w chwili startu systemu, albo w czasie ładowania modułu, implementującego system plików; po zarejestrowniu systemu plików jego funkcje stają się dostępne dla jądra

  • montowanie – dzięki odpowiednim funkcjom system plików może być zamontowany w drzewie katalogów systemu, np.

    # mount [-t ext4] /dev/sda2 /home
    

Porównać:

# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1        4731308 2613036   1854892  59% /
devtmpfs          948724       0    948724   0% /dev
tmpfs             953880       0    953880   0% /dev/shm
tmpfs             953880     280    953600   1% /run
tmpfs             953880       0    953880   0% /sys/fs/cgroup
tmpfs             953880      12    953868   1% /tmp
tmpfs             190712       0    190712   0% /run/user/0
/dev/vdb1        1981008   14788   1847540   1% /mnt/vdb1
# df  -T
Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/vda1      ext4       4731308 2613036   1854892  59% /
devtmpfs       devtmpfs    948724       0    948724   0% /dev
tmpfs          tmpfs       953880       0    953880   0% /dev/shm
tmpfs          tmpfs       953880     276    953604   1% /run
tmpfs          tmpfs       953880       0    953880   0% /sys/fs/cgroup
tmpfs          tmpfs       953880      12    953868   1% /tmp
tmpfs          tmpfs       190712       0    190712   0% /run/user/0
/dev/vdb1      ext4       1981008   14788   1847540   1% /mnt/vdb1
# df  -i
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/vda1      308864 75887 232977   25% /
devtmpfs       237181   327 236854    1% /dev
tmpfs          238470     1 238469    1% /dev/shm
tmpfs          238470   337 238133    1% /run
tmpfs          238470    13 238457    1% /sys/fs/cgroup
tmpfs          238470    13 238457    1% /tmp
tmpfs          238387     1 238386    1% /run/user/0
/dev/vdb1      128000   449 127551    1% /mnt/vdb1

Katalog jest specjalnym rodzajem pliku, który zawiera listę nazw plików wraz z odpowiadającymi im numerami i-węzłów.

Dowiązanie symboliczne jest specjalnym rodzajem pliku, który w swoim i-węźle zawiera nazwę pliku, na którą wskazuje (jeśli ścieżka dowiązania symbolicznego ma nie więcej niż 60 znaków, to całą informację o tym dowiązaniu można zmieścić w i-węźle).

Komenda ls -i [katalog] wyświetla listę plików wraz z odpowiadającymi im numerami i-węzłów.

Więcej informacji o pliku oraz systemie plików można uzyskać przy pomocy komendy stat:

# stat /etc/passwd

  File: `/etc/passwd'
  Size: 1839            Blocks: 8          IO Block: 4096   regular file
Device: 302h/770d       Inode: 245051      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2004-12-20 21:16:10.736631440 +0100
Modify: 2004-11-24 14:10:30.000000000 +0100
Change: 2004-12-15 22:43:15.000000000 +0100
# stat -f /etc/hosts
  File: "/etc/hosts"
  ID: 20e55c1164fe39cd Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 1182827    Free: 531672     Available: 46582

Zob. także i-węzeł: modify|change time.

Przy pomocy komendy stat można uzyskać szereg szczegółowych danych o poszczególnych plikach i systemach plików, np. jaka może być maksymalna długość nazwy pliku. Zob. man stat, https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits.

W celu przyspieszenia wyszukiwania nazw współczesne systemy uniksowe stosują tzw. pamięć podręczną wyszukiwania nazw. Linux używa pamięci podręcznej pozycji katalogów, która działa jako kontroler pamięci podręcznej i-węzłów.

Współczesne implementacje interpretatorów poleceń zapamiętują w pamięci operacyjnej nazwy plików ze wszystkich katalogów umieszczonych w ścieżce PATH.

Pliki z bieżącego katalogu nie są zapamiętywane, bo ulegają częstym zmianom, więc należy w zmiennej PATH katalog bieżący podawać na końcu listy.

Odnajdywanie przez system operacyjny pliku o podanej nazwie jest czynnością złożoną:

../../../_images/file-lookup.png

Spójność systemu plików

Dane systemu plików są zmieniane w pamięci, a dopiero później zmiany zapisywane są na dysku. W razie awarii system plików pozostaje w stanie niespójnym. Trzeba wówczas użyć komendy fsck do przywrócenia spójności metadanych danego systemu plików.

Jak fsck sprawdza spójność bloków danych?

  • dla każdego bloku tworzony jest:

    • licznik plików (liczba plików, które odwołują się do danego bloku)

    • licznik wolnych bloków (liczba wolnych bloków o numerze danego bloku)

  • przeglądana jest lista i-węzłów i zwiększane są liczniki bloków związanych z danym i-węzłem

  • przeglądana jest lista wolnych bloków i zwiększany jest licznik wolnych bloków

Jeśli system plików jest spójny, to każdy blok pojawia się albo na liście bloków zajętych, albo na liście bloków wolnych.

../../../_images/fsck.png

Jak fsck sprawdza spójność plików?

  • dla każdego pliku (i-węzła) tworzony jest licznik

  • przeglądana jest lista plików (poczynając od korzenia systemu plików

  • po napotkaniu pliku zwiększany jest licznik jego i-węzła

  • dla każdego i-węzła porównywany jest stan jego licznika z liczbą dowiązań zapisaną w i-węźle

Jeśli system jest spójny, to liczba dowiązań jest równa stanowi licznika.

Rodzaje niespójności plików:

  • liczba dowiązań jest mniejsza niż stan licznika (liczba pozycji w~katalogach) – niemożność odzyskania i-węzła

  • liczba dowiązań jest większa niż stan licznika – zwolnienie bloków przy usunięciu któregoś z plików

Przykładowy wynik działania komendy fsck sprawdzjącej spójność systemu plików EXT3/4:

# fsck from util-linux 2.23.2
#e2fsck 1.42.9 (28-Dec-2013)
/dev/mapper/vg-lv1 has been mounted 8 times without being checked, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg-lv1: 11/15232 files (9.1% non-contiguous), 7321/61440 blocks

Systemy plików z kroniką

Systemy plików z kroniką, dziennikowe systemy plików, pozwalają na szybkie przywracanie spójności systemów plików w razie awarii, kiedy stan systemu plików zmienia się z clean na dirty.

Przykładowe systemy plików z kroniką: JFS (Journaling File System), EXT3/4, ReiserFS, XFS.

Zalety systemu plików EXT3/4:

  • dostępność

  • integralność danych – EXT3/4 zapewnia mocniejszą integralność danych w razie awarii systemu

  • szybkość – pomimo pisania niektórych danych dwa razy, EXT3/4 zapewnia zwiększoną przepustowość, gdyż optymalizuje ruch głowic

W przypadku systemu plików EXT3/4 kronika może być wykorzystywana na 3 sposoby w zależności od sposobu zamontowania:

# mount -o data=journal|ordered|writeback dev|dir

Wg man mount:

journal
  All data is committed into the journal prior to being written into
  the main file system.
ordered
  This is the default mode.  All data is forced directly out to the
  main file system prior to its metadata being committed to the jour-
  nal.
writeback
  Data ordering is not preserved - data may be written into the main
  file system after its metadata has been committed to the journal.
  This is rumoured to be the highest-throughput option.  It guarantees
  internal file system integrity, however it can allow old data to
  appear in files after a crash and journal recovery.

Domyślny tryb pracy systemu z kroniką można ustawić przy pomocy komendy tune2fs:

# tune2fs -ojournal_data|journal_data_ordered|journal_write_back /dev/vdb1

Zob. man tune2fs.

Dla systemu plików z kroniką jego stan jest zawsze clean i dlatego nie ma w zasadzie konieczności używania komendy fsck do sprawdzania i ew. naprawiania systemu plików. W rzeczywistości moze dochodzić do utraty spójności, więc superblok zawiera parametry Mount count i Maximum mount count, dzięki którym następuję wymuszenie użycia fsck przy montowaniu systemu plików, jeśli liczba montowań zrównuje się z maksymalną dopuszczalną liczbą montowań. Zaleca się, żeby różne systemy plików wskazane do montowania w pliku /etc/fstab miały parametry Maximum mount count nie równe, ale narastające. Chodzi bowiem o to, żeby uniknąć równoczesnego sprawdzania spójności wszystkich montowanych systemów plików.

Zob. Przykłady użycia komendy mount (zad. 1-3).

Przestrzeń wymiany

Przestrzeń wymiany wykorzystywana przez system operacyjny jest wspierana przez specjalny rodzaj systemu plików i montowana podczas uruchamiania systemu operayjnego (zob. /etc/fstab).

Przy pomocy komendy mkswap można utworzyć dodatkową przestrzeń wymiany:

# parted -s /dev/vdb mkpart primary 1 100%
# mkswap /dev/vdb1

Włączenie/wyłączenie tej dodatkowej przestrzeni wymiany odbywa się przy pomocy komend swapon|swapoff:

# swapon /dev/vdb1; free
# swapoff /dev/vdb1; free

Przy braku wolnej partycji można do powiększenia przestzreni wymiany wykorzystać oddzielny plik:

# dd if=/dev/zero of=/root/swapfs bs=1M count=1000
# mkswap /root/swapfs
# swapon /root/swapfs

Wirtualne urządzenia blokowe

Wirtualne urządzenia blokowe (/dev/loop0, /dev/loop1, …) pozwalają na montowanie systemów plików, które znajdują się w zwykłych plikach:

# losetup /dev/loop0 puppyLinux.iso
# mount /dev/loop0 /media/pup

Zamiast dwóch powyższych komend można użyć komendy:

# mount -o loop puppyLinux.iso /media/pup

Montowanie i /etc/fstab

Na maszynach wirtualnych zawartość pliku /etc/fstab jest następująca:

# /etc/fstab: static file system information.
#
# <file sys>    <mount point>   <type>  <options>                     <dump>  <pass>
LABEL=ROOT      /                ext4    rw,noatime,errors=remount-ro    0       1
LABEL=SWAP      none             swap    sw                              0       0

Tę informację trzeba powiązać z dostępnymi na dysku systemowym partycjami:

# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  5060MB  5059MB  primary  ext4            boot
 2      5060MB  5369MB  309MB   primary  linux-swap(v1)

Listę zamontowanych systemów plików daje komenda mount:

# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=948724k,nr_inodes=237181,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,size=953880k,nr_inodes=238470)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=953880k,nr_inodes=238470,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=953880k,nr_inodes=238470,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,
                                       release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
...
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/vda1 on / type ext4 (rw,noatime,errors=remount-ro,data=ordered)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=32,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /tmp type tmpfs (rw,size=953880k,nr_inodes=238470)
mqueue on /dev/mqueue type mqueue (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=190712k,mode=700)

W wyniku zamontowania systemu plików dane na mim zgromadzone stają się dostępne dla użytkowników systemu. Komenda mount oferuje szereg opcji, których można użyć do modyfikowania sposobu udostępniania danych. Jeśli przy montowaniu użyje się opcji defaults (mount -o defaults dev), to jest to równoznaczne z zastosowaniem następujących opcji: rw, suid, dev, exec, auto, nouser, async. Znaczenie tych i kilku innych opcji widocznych powyżej jest następujące (zob. man mount):

async

All I/O to the filesystem should be done asynchronously.

auto

Can be mounted with the -a option.

dev

Interpret character or block special devices on the filesystem.

errors={continue|remount-ro|panic}

Define the behaviour when an error is encountered. (Either ignore errors and just mark the filesystem erroneous and continue, or remount the filesystem read-only, or panic and halt the system.) The default is set in the filesystem superblock, and can be changed using tune2fs(8).

exec

Permit execution of binaries.

nouser

Forbid an ordinary (i.e., non-root) user to mount the filesystem. This is the default.

relatime

Update inode access times relative to modify or change time. Access time is only updated if the previous access time was earlier than the current modify or change time. (Similar to noatime, but doesn’t break mutt or other applications that need to know if a file has been read since the last time it was modified.)

rw

Mount the filesystem read-write.

suid

Allow set-user-identifier or set-group-identifier bits to take effect.

Te opcje stosują się do wszystkich rodzajów systemów plików. Dla poszczególnych systemów może być dostępnych szereg innych opcji (man 5 ext4).

Zob. Przykłady użycia niektórych opcji komendy mount.

Własności plików

Prawa dostępu – zob. Prawa dostępu do plików i ich zmiana.

Dowiązanie sztywne i symboliczne – zob. hard|soft links.

Atrybuty atime, mtime, ctime – zob. atime, etc.

Wyszukiwanie plików – zob. find.