landlock_add_rule(2)

NUME
landlock_add_rule - adaugă o nouă regulă Landlock la un set de reguli

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <linux/landlock.h>  /* Definirea constantelor LANDLOCK_* */
#include <sys/syscall.h>     /* Definirea constantelor SYS_* */

int syscall(SYS_landlock_add_rule, int ruleset_fd,
            enum landlock_rule_type rule_type,
            const void *rule_attr, uint32_t fanioane);

DESCRIERE
O regulă Landlock descrie o acțiune asupra unui obiect pe care procesul intenționează să o efectueze. Un set de reguli este agregat într-un set de reguli, care poate apoi restricționa firul care îl aplică și viitorii săi copii.

Apelul de sistem landlock_add_rule() adaugă o nouă regulă Landlock la un set de reguli existent. Consultați landlock(7) pentru o prezentare generală.

ruleset_fd este un descriptor de fișier de set de reguli Landlock obținut cu landlock_create_ruleset(2).

rule_type identifică tipul de structură indicat de rule_attr. În prezent, Linux acceptă următoarele valori rule_type:

LANDLOCK_RULE_PATH_BENEATH
    Pentru aceste reguli, obiectul este o ierarhie de fișiere, iar acțiunile aferente sistemului de fișiere sunt definite cu drepturi de acces la sistemul de fișiere.

    În acest caz, rule_attr indică următoarea structură:

        struct landlock_path_beneath_attr {
            __u64 allowed_access;
            __s32 parent_fd;
        } __attribute__((packed));

    allowed_access conține o mască de biți a acțiunilor sistemului de fișiere permise, care pot fi aplicate asupra parent_fd specificat (a se vedea Acțiuni ale sistemului de fișiere în landlock(7)).

    parent_fd este un descriptor de fișier deschis, de preferință cu indicatorul O_PATH, care identifică directorul părinte al ierarhiei de fișiere sau doar un fișier.

LANDLOCK_RULE_NET_PORT
    Pentru aceste reguli, obiectul este un port TCP, iar acțiunile aferente sunt definite cu drepturi de acces la rețea.

    În acest caz, rule_attr indică următoarea structură:

        struct landlock_net_port_attr {
            __u64 allowed_access;
            __u64 port;
        };

    allowed_access conține o mască de biți a acțiunilor de rețea permise, care pot fi aplicate pe portul dat.

    port este portul de rețea în ordinea de octeți „endianness” a gazdei.

    Trebuie remarcat faptul că portul 0 transmis către bind(2) se va lega la un port disponibil din gama de porturi efemere. Acesta poate fi configurat în sysctl /proc/sys/net/ipv4/ip_local_port_range (utilizat și pentru IPv6).

    O regulă Landlock cu portul 0 și dreptul LANDLOCK_ACCESS_NET_BIND_TCP înseamnă că solicitarea de conectare pe portul 0 este permisă și se va traduce automat în conectare pe intervalul de porturi aferent.

fanioane trebuie să fie 0.

VALOAREA RETURNATĂ
În caz de succes, landlock_add_rule() returnează 0. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE
landlock_add_rule() poate eșua din următoarele motive:

EAFNOSUPPORT
    rule_type este LANDLOCK_RULE_NET_PORT, dar TCP nu este acceptat de nucleul care rulează.

EBADF
    ruleset_fd nu este un descriptor de fișier pentru firul curent sau un membru al rule_attr nu este un descriptor de fișier, așa cum era de așteptat.

EBADFD
    ruleset_fd nu este un descriptor de fișier pentru firul curent sau un membru al rule_attr nu este un descriptor de fișier, așa cum era de așteptat.ruleset_fd nu este un descriptor de fișier de set de reguli sau un membru al rule_attr nu este tipul de descriptor de fișier așteptat.

EFAULT
    rule_attr nu a fost o adresă validă.

EINVAL
    fanioane(flags) nu este 0.

EINVAL
    Accesele la reguli sunt inconsecvente (de exemplu, rule_attr->allowed_access nu este un subset al acceselor gestionate de setul de reguli).

EINVAL
    În struct landlock_path_beneath_attr, accesele la reguli nu se aplică fișierului (de exemplu, unele drepturi de acces din rule_attr->allowed_access se aplică numai directoarelor, dar rule_attr->parent_fd nu se referă la un director).

EINVAL
    În struct landlock_net_port_attr, numărul portului este mai mare de 65535.

ENOMSG
    Accese goale (adică, rule_attr->allowed_access este 0).

EOPNOTSUPP
    Landlock este acceptat de nucleu, dar este dezactivat la pornire.

EPERM
    ruleset_fd nu are acces de scriere la setul de reguli de bază.

STANDARDE
Linux.

ISTORIC
Linux 5.13.

EXEMPLE
A se vedea landlock(7).

CONSULTAȚI ȘI
landlock_create_ruleset(2), landlock_restrict_self(2), landlock(7)

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.