landlock_restrict_self(2)

NUME
landlock_restrict_self - aplică un set de reguli Landlock

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_restrict_self, int ruleset_fd,
            uint32_t fanioane);

DESCRIERE
Odată ce un set de reguli Landlock este completat cu regulile dorite, apelul de sistem landlock_restrict_self() permite aplicarea acestui set de reguli pe firul de execuție apelant. A se vedea landlock(7) pentru o prezentare generală.

Un fir poate fi restricționat cu mai multe seturi de reguli care sunt apoi compuse împreună pentru a forma domeniul Landlock al firului. Acest lucru poate fi văzut ca o stivă de seturi de reguli, dar este implementat într-un mod mai eficient. Un domeniu poate fi actualizat numai în așa fel încât constrângerile fiecărui set de reguli compus în trecut și în viitor să restricționeze firul și viitorii săi copii pe toată durata de viață. Astfel, este posibilă aplicarea treptată a unor politici de control al accesului personalizate cu mai multe seturi de reguli independente provenind din surse diferite (de exemplu, configurația sistemului de inițiere „init”, politica sesiunii utilizatorului, politica integrată a aplicației). Cu toate acestea, majoritatea aplicațiilor ar trebui să aibă nevoie doar de un singur apel la landlock_restrict_self() și ar trebui să evite un număr arbitrar de astfel de apeluri din cauza limitei seturilor de reguli compuse. În schimb, dezvoltatorii sunt încurajați să construiască un set de reguli adaptat datorită apelurilor multiple la landlock_add_rule(2).

Pentru a aplica un set de reguli, fie apelantul trebuie să aibă capacitatea CAP_SYS_ADMIN în spațiul său de nume de utilizator, fie firul trebuie să aibă deja activat bitul no_new_privs. În ceea ce privește seccomp(2), acest lucru evită scenariile în care procesele neprivilegiate pot afecta comportamentul copiilor privilegiați (de exemplu, din cauza binarelor set-user-ID). Dacă acest bit nu a fost deja activat de un antecesor al acestui fir, firul trebuie să efectueze următorul apel:

        prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);

ruleset_fd este un descriptor de fișier de set de reguli Landlock obținut cu landlock_create_ruleset(2) și complet încărcat cu un set de apeluri către landlock_add_rule(2).

fanioane trebuie să fie 0.

VALOAREA RETURNATĂ
În caz de succes, landlock_restrict_self() returnează 0.

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

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

EINVAL
    fanioane(flags) nu este 0.

EBADF
    ruleset_fd nu este un descriptor de fișier pentru firul curent.

EBADFD
    ruleset_fd nu este un descriptor de fișier de set de reguli.

EPERM
    ruleset_fd nu are acces de citire la setul de reguli subiacente, sau firul apelant nu rulează cu no_new_privs, sau nu are CAP_SYS_ADMIN în spațiul de nume al utilizatorului.

E2BIG
    Numărul maxim de seturi de reguli compuse este atins pentru firul de apelare. Această limită este în prezent de 64.

STANDARDE
Linux.

ISTORIC
Linux 5.13.

EXEMPLE
A se vedea landlock(7).

CONSULTAȚI ȘI
landlock_create_ruleset(2), landlock_add_rule(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.