KEYCTL_SESSION_TO_PARENT(2const) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | STANDARDS | HISTORY | SEE ALSO | COLOPHON

KEYCTL_SESSION_TO_PARENT(2const)         KEYCTL_SESSION_TO_PARENT(2const)

NAME         top

       KEYCTL_SESSION_TO_PARENT - set the parent process's session
       keyring

LIBRARY         top

       Standard C library (libc, -lc)

SYNOPSIS         top

       #include <linux/keyctl.h>  /* Definition of KEY* constants */
       #include <sys/syscall.h>   /* Definition of SYS_* constants */
       #include <unistd.h>

       longsyscall(SYS_keyctl,KEYCTL_SESSION_TO_PARENT);

DESCRIPTION         top

       Replace the session keyring to which the parent of the calling
       process subscribes with the session keyring of the calling
       process.

       The keyring will be replaced in the parent process at the point
       where the parent next transitions from kernel space to user space.

       The keyring must exist and must grant the caller link permission.
       The parent process must be single-threaded and have the same
       effective ownership as this process and must not be set-user-ID or
       set-group-ID.  The UID of the parent process's existing session
       keyring (f it has one), as well as the UID of the caller's session
       keyring much match the caller's effective UID.

       The fact that it is the parent process that is affected by this
       operation allows a program such as the shell to start a child
       process that uses this operation to change the shell's session
       keyring.  (This is what the keyctl(1) new_session command does.)

RETURN VALUE         top

       On success, 0 is returned.

       On error, -1 is returned, and errno is set to indicate the error.

ERRORS         top

       EPERM  All of the UIDs (GIDs) of the parent process do not match
              the effective UID (GID) of the calling process.

       EPERM  The UID of the parent's existing session keyring or the UID
              of the caller's session keyring did not match the effective
              UID of the caller.

       EPERM  The parent process is not single-threaded.

       EPERM  The parent process is init(1) or a kernel thread.

VERSIONS         top

       A wrapper is provided in the libkeyutils library:
       keyctl_session_to_parent(3).

STANDARDS         top

       Linux.

HISTORY         top

       Linux 2.6.32.

SEE ALSO         top

       keyctl(2), keyctl_session_to_parent(3)

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.10.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2025-02-02.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       man-pages@man7.org

Linux man-pages 6.10            2024-08-21KEYCTL_SESSION_TO_PARENT(2const)

Pages that refer to this page: keyctl(2)KEYCTL_SETPERM(2const)