perkamon - en to fr translation catalogue (60 entries)

note: type: TH
en: 2023-05-03
fr: 3 mai 2023

note: type: TH
en: Linux man-pages 6.05.01
fr: Pages du manuel de Linux 6.05.01

note: type: SH
en: NAME
fr: NOM

note: type: Plain text
en: ioctl_ns - ioctl() operations for Linux namespaces
fr: ioctl_ns - opérations ioctl() pour les espaces de noms Linux

note: ============================================================ type: SS
en: Discovering namespace relationships
fr: Recherche des relations entre les espaces de noms

note: type: Plain text
en: The following B<ioctl>(2)  operations are provided to allow discovery of namespace relationships (see B<user_namespaces>(7)  and B<pid_namespaces>(7)).  The form of the calls is:
fr: Les opérations B<ioctl>(2) suivantes sont fournies pour permettre la recherche de relations entre espaces de noms (voir B<user_namespaces>(7) et B<pid_namespaces>(7)). La forme des appels est :

note: type: Plain text
en: In each case, I<fd> refers to a I</proc/>pidI</ns/*> file.  Both operations return a new file descriptor on success.
fr: Dans tous les cas, I<fd> renvoie au fichier I</proc/>pidI</ns/*>. Les deux opérations renvoient un nouveau descripteur de fichier en cas de succès.

note: type: TP
en: B<NS_GET_USERNS> (since Linux 4.9)
fr: B<NS_GET_USERNS> (depuis Linux 4.9)

note: commit bcac25a58bfc6bd79191ac5d7afb49bea96da8c9 commit 6786741dbf99e44fb0c0ed85a37582b8a26f1c3b type: Plain text
en: Returns a file descriptor that refers to the owning user namespace for the namespace referred to by I<fd>.
fr: Renvoie un descripteur de fichier qui se rapporte à l'espace de noms de l'utilisateur propriétaire pour l'espace de noms auquel renvoie I<fd>.

note: type: TP
en: B<NS_GET_PARENT> (since Linux 4.9)
fr: B<NS_GET_PARENT> (depuis Linux 4.9)

note: commit a7306ed8d94af729ecef8b6e37506a1c6fc14788 type: Plain text
en: Returns a file descriptor that refers to the parent namespace of the namespace referred to by I<fd>.  This operation is valid only for hierarchical namespaces (i.e., PID and user namespaces).  For user namespaces, B<NS_GET_PARENT> is synonymous with B<NS_GET_USERNS>.
fr: Renvoie un descripteur de fichier qui se rapporte à l'espace de noms parent de l'espace auquel renvoie I<fd>. Cette opération n'est valable que pour des espaces de noms hiérarchiques (à savoir les espaces de noms de PID et d'utilisateur). Pour les espaces de noms utilisateur, B<NS_GET_PARENT> est synonyme de B<NS_GET_USERNS>.

note: type: Plain text
en: The new file descriptor returned by these operations is opened with the B<O_RDONLY> and B<O_CLOEXEC> (close-on-exec; see B<fcntl>(2))  flags.
fr: Le nouveau descripteur de fichier renvoyé par ces opérations est ouvert avec les attributs B<O_RDONLY> et B<O_CLOEXEC> (close-on-exec ; voir B<fcntl>(2)).

note: type: Plain text
en: By applying B<fstat>(2)  to the returned file descriptor, one obtains a I<stat> structure whose I<st_dev> (resident device) and I<st_ino> (inode number) fields together identify the owning/parent namespace.  This inode number can be matched with the inode number of another I</proc/>pidI</ns/>{I<pid>,I<user>} file to determine whether that is the owning/parent namespace.
fr: En appliquant B<fstat>(2) au descripteur de fichier renvoyé, vous obtenez une structure I<stat> où les champs I<st_dev> (le périphérique résident) et I<st_ino> (le numéro d'inœud) identifient à la fois l'espace de noms du propriétaire et du parent. Ce numéro d'inœud peut être mis en correspondance avec le numéro d'inœud d'un autre fichier I</proc/>pidI</ns/>{I<pid>,I<user>} pour savoir s'il s'agit de l'espace de noms du propriétaire ou du parent.

note: type: Plain text
en: Either of these B<ioctl>(2)  operations can fail with the following errors:
fr: Chacune de ces opérations B<ioctl>(2) peut échouer avec les erreurs suivantes :

note: type: Plain text
en: The requested namespace is outside of the caller's namespace scope.  This error can occur if, for example, the owning user namespace is an ancestor of the caller's current user namespace.  It can also occur on attempts to obtain the parent of the initial user or PID namespace.
fr: L'espace de noms demandé va au-delà de la cible de l'espace de noms de l'appelant. Cette erreur peut arriver si, par exemple, l'espace de noms du propriétaire est un ancêtre de l'espace de noms de l'utilisateur actuel de l'appelant. Elle peut aussi survenir en cas de tentative d'obtenir le parent de l'espace de noms de l'utilisateur initial ou du PID.

note: type: Plain text
en: The operation is not supported by this kernel version.
fr: L'opération n'est pas prise en charge par cette version du noyau.

note: type: Plain text
en: Additionally, the B<NS_GET_PARENT> operation can fail with the following error:
fr: De plus, l'opération B<NS_GET_PARENT> peut échouer avec l'erreur suivante :

note: type: Plain text
en: I<fd> refers to a nonhierarchical namespace.
fr: I<fd> se rapporte à un espace de noms non hiérarchique.

note: ============================================================ type: Plain text
en: See the EXAMPLES section for an example of the use of these operations.
fr: Voir la section EXEMPLE pour un exemple d'utilisation de ces opérations.

note: type: SS
en: Discovering the namespace type
fr: Recherche du type d'espace de noms

note: commit e5ff5ce6e20ee22511398bb31fb912466cf82a36 type: Plain text
en: The B<NS_GET_NSTYPE> operation (available since Linux 4.11) can be used to discover the type of namespace referred to by the file descriptor I<fd>:
fr: L'opération B<NS_GET_NSTYPE> (disponible depuis Linux 4.11) peut être utilisée pour rechercher le type d'espace de noms auquel se rapporte le descripteur de fichier I<fd> :

note: type: Plain text
en: I<fd> refers to a I</proc/>pidI</ns/*> file.
fr: I<fd> renvoie à un fichier I</proc/>pidI</ns/*>.

note: ============================================================ type: Plain text
en: The return value is one of the B<CLONE_NEW*> values that can be specified to B<clone>(2)  or B<unshare>(2)  in order to create a namespace.
fr: La valeur de renvoi est une des valeurs de B<CLONE_NEW*>, qui peut être indiquée à B<clone>(2) ou à B<unshare>(2) afin de créer un espace de noms.

note: type: SS
en: Discovering the owner of a user namespace
fr: Rechercher le propriétaire d'un espace de noms utilisateur

note: commit 015bb305b8ebe8d601a238ab70ebdc394c7a19ba type: Plain text
en: The B<NS_GET_OWNER_UID> operation (available since Linux 4.11) can be used to discover the owner user ID of a user namespace (i.e., the effective user ID of the process that created the user namespace).  The form of the call is:
fr: L'opération B<NS_GET_OWNER_UID> (disponible depuis Linux 4.11) peut être utilisée pour rechercher l'identifiant de l'utilisateur propriétaire d'un espace de noms utilisateur (c'est-à-dire l'identifiant de l'utilisateur réel du processus qui a créé l'espace de noms utilisateur). La forme de l'appel est :

note: type: Plain text
en: I<fd> refers to a I</proc/>pidI</ns/user> file.
fr: I<fd> renvoie à un fichier I</proc/>pidI</ns/user>.

note: type: Plain text
en: The owner user ID is returned in the I<uid_t> pointed to by the third argument.
fr: L'identifiant de l'utilisateur propriétaire est renvoyé dans l'I<uid_t> vers lequel pointe le troisième paramètre.

note: type: Plain text
en: This operation can fail with the following error:
fr: Cette opération peut échouer avec l'erreur suivante :

note: type: Plain text
en: I<fd> does not refer to a user namespace.
fr: I<fd> ne se rapporte pas à un espace de noms utilisateur.

note: type: SH
en: ERRORS
fr: ERREURS

note: type: Plain text
en: Any of the above B<ioctl>()  operations can return the following errors:
fr: Chacune des opérations B<ioctl>() ci-dessus peut renvoyer les erreurs suivantes :

note: type: SH
en: EXAMPLES
fr: EXEMPLES

note: type: Plain text
en: The example shown below uses the B<ioctl>(2)  operations described above to perform simple discovery of namespace relationships.  The following shell sessions show various examples of the use of this program.
fr: L'exemple présenté ci-dessous utilise les opérations B<ioctl>(2) décrites ci-dessus pour effectuer une simple recherche de relations entre espaces de noms. Les sessions d'interpréteur de commandes suivantes montrent divers exemples de l'utilisation de ce programme.

note: type: Plain text
en: Trying to get the parent of the initial user namespace fails, since it has no parent:
fr: L'essai pour obtenir le parent de l'espace de noms utilisateur initial échoue, car il n'a pas de parent :

note: type: Plain text
en: $ B<./ns_show /proc/self/ns/user p>
    The parent namespace is outside your namespace scope
fr: $ B<./ns_show /proc/self/ns/user p>
    L'espace de noms du parent dépasse la cible de votre espace utilisateur

note: type: Plain text
en: Create a process running B<sleep>(1)  that resides in new user and UTS namespaces, and show that the new UTS namespace is associated with the new user namespace:
fr: Créer un processus qui exécute B<sleep>(1) dans les nouveaux espaces de noms de l'utilisateur et UTS, et indiquer que le nouvel espace de noms UTS est associé au nouvel espace de noms de l'utilisateur :

note: type: Plain text
en: $ B<unshare -Uu sleep 1000 &>
    [1] 23235
    $ B<./ns_show /proc/23235/ns/uts u>
    Device/Inode of owning user namespace is: [0,3] / 4026532448
    $ B<readlink /proc/23235/ns/user>
    user:[4026532448]
fr: $ B<unshare -Uu sleep 1000 &>
    [1] 23235
    $ B<./ns_show /proc/23235/ns/uts u>
    Le périphérique/inœud de l'espace de noms de l'utilisateur propriétaire
    est : [0,3] / 4026532448
    $ B<readlink /proc/23235/ns/user>
    utilisateur :[4026532448]

note: type: Plain text
en: Then show that the parent of the new user namespace in the preceding example is the initial user namespace:
fr: Puis indiquer que le parent du nouvel espace de noms utilisateur de l'exemple précédent est dans l'espace de noms de l'utilisateur initial :

note: type: Plain text
en: $ B<readlink /proc/self/ns/user>
    user:[4026531837]
    $ B<./ns_show /proc/23235/ns/user p>
    Device/Inode of parent namespace is: [0,3] / 4026531837
fr: $ B<readlink /proc/self/ns/user>
    utilisateur:[4026531837]
    $ B<./ns_show /proc/23235/ns/user p>
    Le périphérique/inœud de l'espace de noms parent est : [0,3] / 4026531837

note: type: Plain text
en: Start a shell in a new user namespace, and show that from within this shell, the parent user namespace can't be discovered.  Similarly, the UTS namespace (which is associated with the initial user namespace)  can't be discovered.
fr: Démarrer un interpréteur de commandes dans un nouvel espace de noms utilisateur et indiquer que depuis cet interpréteur, l'espace de noms parent de l'utilisateur n'a pas pu être trouvé. De même, l'espace de nom UTS (qui est associé à l'espace de noms utilisateur initial) n'a pas pu être trouvé.

note: type: Plain text
en: $ B<PS1="sh2$ " unshare -U bash>
    sh2$ B<./ns_show /proc/self/ns/user p>
    The parent namespace is outside your namespace scope
    sh2$ B<./ns_show /proc/self/ns/uts u>
    The owning user namespace is outside your namespace scope
fr: $ B<PS1="sh2$ " unshare -U bash>
    sh2$ B<./ns_show /proc/self/ns/user p>
    L'espace de noms parent dépasse la cible de votre espace de noms
    sh2$ B<./ns_show /proc/self/ns/uts u>
    L'espace de noms de l'utilisateur propriétaire dépasse la cible de votre espace de noms

note: type: SS
en: Program source
fr: Source du programme

note: SRC END type: SH
en: SEE ALSO
fr: VOIR AUSSI

note: type: TH
en: 2023-02-05
fr: 5 février 2023

note: type: TH
en: Linux man-pages 6.03
fr: Pages du manuel de Linux 6.03

note: type: Plain text
en: I<fd> does not refer to a I</proc/[pid]/ns/*> file.
fr: I<fd> ne renvoie pas à un fichier I</proc/[pid]/ns/*>.

note: type: Plain text
en: Namespaces and the operations described on this page are a Linux-specific.
fr: Les espaces de noms et les opérations décrits sur cette page sont spécifiques à Linux.

note: type: Plain text
en:    Licensed under the GNU General Public License v2 or later.
    */
    #include E<lt>errno.hE<gt>
    #include E<lt>fcntl.hE<gt>
    #include E<lt>linux/nsfs.hE<gt>
    #include E<lt>stdint.hE<gt>
    #include E<lt>stdio.hE<gt>
    #include E<lt>stdlib.hE<gt>
    #include E<lt>string.hE<gt>
    #include E<lt>sys/ioctl.hE<gt>
    #include E<lt>sys/stat.hE<gt>
    #include E<lt>sys/sysmacros.hE<gt>
    #include E<lt>unistd.hE<gt>
fr:    Sous licence GNU General Public v2 ou supérieure.
    */
    #include E<lt>errno.hE<gt>
    #include E<lt>fcntl.hE<gt>
    #include E<lt>linux/nsfs.hE<gt>
    #include E<lt>stdint.hE<gt>
    #include E<lt>stdio.hE<gt>
    #include E<lt>stdlib.hE<gt>
    #include E<lt>string.hE<gt>
    #include E<lt>sys/ioctl.hE<gt>
    #include E<lt>sys/stat.hE<gt>
    #include E<lt>sys/sysmacros.hE<gt>
    #include E<lt>unistd.hE<gt>

note: type: Plain text
en:     if (argc E<lt> 2) {
            fprintf(stderr, "Usage: %s /proc/[pid]/ns/[file] [p|u]\en",
                    argv[0]);
            fprintf(stderr, "\enDisplay the result of one or both "
                    "of NS_GET_USERNS (u) or NS_GET_PARENT (p)\en"
                    "for the specified /proc/[pid]/ns/[file]. If neither "
                    "\[aq]p\[aq] nor \[aq]u\[aq] is specified,\en"
                    "NS_GET_USERNS is the default.\en");
            exit(EXIT_FAILURE);
        }
fr:     if (argc E<lt> 2) {
            fprintf(stderr, "Utilisation : %s /proc/[pid]/ns/[file] [p|u]\en",
                    argv[0]);
            fprintf(stderr, "\enAfficher le résultat d'un ou plusieurs des "
                    "NS_GET_USERNS (u) ou NS_GET_PARENT (p)\en"
                    "pour le /proc/[pid]/ns/[file] indiqué. Si ni "
                    "\[aq]p\[aq] ni \[aq]u\[aq] ne sont indiqués,\en"
                    "NS_GET_USERNS l'est par défaut.\en");
            exit(EXIT_FAILURE);
        }

note: type: Plain text
en:     /* Obtain a file descriptor for the \[aq]ns\[aq] file specified
           in argv[1]. */
fr:     /* Obtenir un descripteur de fichier pour le fichier \[aq]ns\[aq] indiqué
           dans argv[1]. */

note: type: Plain text
en:     /* Obtain a file descriptor for the owning user namespace and
           then obtain and display the inode number of that namespace. */
fr:     /* Obtenir un descripteur de fichier pour l'espace de noms de l'utilisateur
           propriétaire et obtenir et afficher le numéro d'inœud de cet espace de
           noms. */

note: type: Plain text
en:         if (userns_fd == -1) {
                if (errno == EPERM)
                    printf("The owning user namespace is outside "
                           "your namespace scope\en");
                else
                   perror("ioctl-NS_GET_USERNS");
                exit(EXIT_FAILURE);
             }
fr:         if (userns_fd == -1) {
                if (errno == EPERM)
                    printf("L'espace de noms de l'utilisateur propriétaire dépasse "
                            "la cible de votre espace de noms\en");
                else
                   perror("ioctl-NS_GET_USERNS");
                exit(EXIT_FAILURE);
             }

note: type: Plain text
en:         if (fstat(userns_fd, &sb) == -1) {
                perror("fstat-userns");
                exit(EXIT_FAILURE);
            }
            printf("Device/Inode of owning user namespace is: "
                   "[%x,%x] / %ju\en",
                   major(sb.st_dev),
                   minor(sb.st_dev),
                   (uintmax_t) sb.st_ino);
fr:         if (fstat(userns_fd, &sb) == -1) {
                perror("fstat-userns");
                exit(EXIT_FAILURE);
            }
            printf("Le périphérique/inœud de l'espace de noms de l'utilisateur propriétaire est : "
                   "[%x,%x] / %ju\en",
                   major(sb.st_dev),
                   minor(sb.st_dev),
                   (uintmax_t) sb.st_ino);

note: type: Plain text
en:         close(userns_fd);
        }
fr:         close(userns_fd);
         }

note: type: Plain text
en:     /* Obtain a file descriptor for the parent namespace and
           then obtain and display the inode number of that namespace. */
fr:     /* Obtenir un descripteur de fichier pour l'espace de noms parent et
           obtenir et afficher le numéro d'inœud de cet espace de noms. */

note: type: Plain text
en:         if (parent_fd == -1) {
                if (errno == EINVAL)
                    printf("Can\[aq] get parent namespace of a "
                           "nonhierarchical namespace\en");
                else if (errno == EPERM)
                    printf("The parent namespace is outside "
                           "your namespace scope\en");
                else
                    perror("ioctl-NS_GET_PARENT");
                exit(EXIT_FAILURE);
            }
fr:         if (parent_fd == -1) {
                if (errno == EINVAL)
                    printf("Ne peut pas obtenir l'espace de noms parent d'un "
                            "espace de noms non hiérarchique\en");
                else if (errno == EPERM)
                    printf("L'espace de noms parent dépasse "
                            "la cible de votre espace de noms\en");
                else
                    perror("ioctl-NS_GET_PARENT");
                exit(EXIT_FAILURE);
            }

note: type: Plain text
en:         if (fstat(parent_fd, &sb) == -1) {
                perror("fstat-parentns");
                exit(EXIT_FAILURE);
            }
            printf("Device/Inode of parent namespace is: [%x,%x] / %ju\en",
                   major(sb.st_dev),
                   minor(sb.st_dev),
                   (uintmax_t) sb.st_ino);
fr:         if (fstat(parent_fd, &sb) == -1) {
                perror("fstat-parentns");
                exit(EXIT_FAILURE);
            }
            printf("Le périphérique/inœud de l'espace de noms parent est : [%x,%x] / %ju\en",
                   major(sb.st_dev),
                   minor(sb.st_dev),
                   (uintmax_t) sb.st_ino);

note: type: TH
en: Linux man-pages 6.05
fr: Pages du manuel de Linux 6.05

note: type: TH
en: 2023-04-03
fr: 3 avril 2023

note: type: TH
en: Linux man-pages 6.04
fr: Pages du manuel de Linux 6.04
