ioctl_iflags(2)

NUME
ioctl_iflags - operații ioctl() pentru fanioane de noduri-i

DESCRIERE
Diferite sisteme de fișiere Linux acceptă noțiunea de atribute fanioane de noduri-i - atribute care modifică semantica fișierelor și directoarelor. Aceste fanioane pot fi recuperate și modificate cu ajutorul a două operații ioctl(2):

    int attr;
    fd = open("pathname", ...);

    ioctl(fd, FS_IOC_GETFLAGS, &attr);  /* Plasează fanioanele curente
                                           în „attr” */
    attr |= FS_NOATIME_FL;              /* Ajustează masca de biți returnată */
    ioctl(fd, FS_IOC_SETFLAGS, &attr);  /* Actualizează fanioanele pentru noduri-i
                                           la care se face referire prin „fd” */

Comenzile de shell lsattr(1) și chattr(1) oferă interfețe pentru aceste două operații, permițând unui utilizator să vizualizeze și să modifice fanioanele de nod-i asociate cu un fișier.

Sunt acceptate următoarele fanioane (afișate împreună cu litera corespunzătoare utilizată pentru a indica fanionul de către lsattr(1) și chattr(1)):

FS_APPEND_FL „a”
    Fișierul poate fi deschis numai cu fanionul O_APPEND; (această restricție se aplică chiar și superutilizatorului). Numai un proces privilegiat (CAP_LINUX_IMMUTABLE) poate activa sau dezactiva acest atribut.

FS_COMPR_FL „c”
    Stochează fișierul într-un format comprimat pe disc. Acest fanion nu este acceptat de majoritatea implementărilor de sisteme de fișiere principale; o excepție este btrfs(5).

FS_DIRSYNC_FL „D” (începând cu Linux 2.6.0)
    Scrie modificările de directoare în mod sincron pe disc. Acest fanion oferă o semantică echivalentă cu cea a opțiunii mount(2) MS_DIRSYNC, dar pentru fiecare director în parte. Acest fanion poate fi aplicat numai la directoare.

FS_IMMUTABLE_FL „i”
    Fișierul este imuabil: nu este permisă nicio modificare a conținutului fișierului sau a metadatelor (permisiuni, marcaje de timp, proprietate, număr de legături etc.); (această restricție se aplică chiar și superutilizatorului). Numai un proces privilegiat (CAP_LINUX_IMMUTABLE) poate activa sau dezactiva acest atribut.

FS_JOURNAL_DATA_FL „j”
    Activează jurnalizarea datelor de fișier pe sistemele de fișiere ext3(5) și ext4(5). Pe un sistem de fișiere care se jurnalizează în modul ordered sau writeback, un proces privilegiat (CAP_SYS_RESOURCE) poate activa acest indicator pentru a activa jurnalizarea actualizărilor de date pentru fiecare fișier în parte.

FS_NOATIME_FL „A”
    Nu actualizează ultima oră de accesare a fișierului atunci când fișierul este accesat. Acest lucru poate aduce beneficii în ceea ce privește performanța operațiilor de In/Ieș pentru aplicațiile care nu se preocupă de acuratețea acestui marcaj de timp. Acest fanion oferă o funcționalitate similară cu fanionul mount(2) MS_NOATIME, dar pentru fiecare fișier în parte.

FS_NOCOW_FL „C” (începând cu Linux 2.6.39)
    Fișierul nu va fi supus actualizărilor de tip „copy-on-write”. Acest fanion are efect numai pe sistemele de fișiere care acceptă semantica copy-on-write, cum ar fi Btrfs. A se vedea chattr(1) și btrfs(5).

FS_NODUMP_FL „d”
    Nu include acest fișier în copiile de rezervă realizate cu dump(8).

FS_NOTAIL_FL „t”
    Acest fanion este suportat numai pe Reiserfs. Dezactivează funcția Reiserfs tail-packing, care încearcă să împacheteze fișierele mici (și fragmentul final al fișierelor mai mari) în același bloc de disc ca și metadatele fișierului.

FS_PROJINHERIT_FL „P” (începând cu Linux 4.5)
    Moștenește ID-ul proiectului de cotă. Fișierele și subdirectoarele vor moșteni ID-ul de proiect al directorului. Acest fanion poate fi aplicat numai la directoare.

FS_SECRM_FL „s”
    Marchează fișierul pentru ștergere securizată. Această caracteristică nu este implementată de niciun sistem de fișiere, deoarece sarcina de a șterge în siguranță un fișier de pe un suport de înregistrare este surprinzător de dificilă.

FS_SYNC_FL „S”
    Efectuează actualizări sincrone ale fișierelor. În cazul fișierelor, acest lucru face ca toate scrierile să fie sincrone (ca și cum toate deschiderile de fișiere ar fi fost efectuate cu fanionul O_SYNC). Pentru directoare, acest lucru are același efect ca și fanionul FS_DIRSYNC_FL.

FS_TOPDIR_FL „T”
    Marchează un director pentru un tratament special în cadrul strategiei de alocare a blocurilor Orlov. A se vedea chattr(1) pentru detalii. Acest fanion poate fi aplicat numai directoarelor și are efect numai pentru ext2, ext3 și ext4.

FS_UNRM_FL „u”
    Permite ca fișierul să fie recuperat în cazul în care este șters. Această caracteristică nu este implementată de niciun sistem de fișiere, deoarece este posibil să se implementeze mecanisme de recuperare a fișierelor în afara nucleului.

În cele mai multe cazuri, atunci când oricare dintre fanioanele de mai sus este activat pentru un director, fanionul este moștenit de fișierele și subdirectoarele create în interiorul directorului respectiv. Excepțiile includ FS_TOPDIR_FL, care nu poate fi moștenit, și FS_DIRSYNC_FL, care este moștenit numai de subdirectoare.

STANDARDE
Linux.

NOTE
Pentru a modifica fanioanele de nod-i ale unui fișier utilizând operația FS_IOC_SETFLAGS, ID-ul efectiv al utilizatorului care face apelul trebuie să corespundă proprietarului fișierului sau apelantul trebuie să aibă capacitatea CAP_FOWNER.

Tipul argumentului dat la operațiile FS_IOC_GETFLAGS și FS_IOC_SETFLAGS este int *, în ciuda implicației din fișierul sursă al nucleului include/uapi/linux/fs.h că argumentul este long *.

CONSULTAȚI ȘI
chattr(1), lsattr(1), mount(2), btrfs(5), ext4(5), xfs(5), xattr(7), mount(8)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.