diff --git a/man/rules/meson.build b/man/rules/meson.build index ae0556058e..f74dbf9c77 100644 --- a/man/rules/meson.build +++ b/man/rules/meson.build @@ -441,7 +441,7 @@ manpages = [ '3', ['sd_notifyf', 'sd_pid_notify', 'sd_pid_notify_with_fds', 'sd_pid_notifyf'], ''], - ['sd_pid_get_session', + ['sd_pid_get_owner_uid', '3', ['sd_peer_get_cgroup', 'sd_peer_get_machine_name', @@ -453,7 +453,7 @@ manpages = [ 'sd_peer_get_user_unit', 'sd_pid_get_cgroup', 'sd_pid_get_machine_name', - 'sd_pid_get_owner_uid', + 'sd_pid_get_session', 'sd_pid_get_slice', 'sd_pid_get_unit', 'sd_pid_get_user_slice', diff --git a/man/sd_bus_creds_get_pid.xml b/man/sd_bus_creds_get_pid.xml index 6ea95e0665..56e62863f2 100644 --- a/man/sd_bus_creds_get_pid.xml +++ b/man/sd_bus_creds_get_pid.xml @@ -394,16 +394,19 @@ sd_bus_creds_get_session() will retrieve the identifier of the login session that the process is - a part of. See - systemd-logind.service8. For - processes that are not part of a session, returns -ENXIO. - + a part of. Please note the login session may be limited to a stub + process or two. User processes may instead be started from their + systemd user manager, e.g. GUI applications started using DBus + activation, as well as service processes which are shared between + multiple logins of the same user. For processes that are not part + of a session, returns -ENXIO. sd_bus_creds_get_owner_uid() will retrieve the numeric UID (user identifier) of the user who owns - the login session that the process is a part of. See + the user unit or login session that the process is a part of. See systemd-logind.service8. - For processes that are not part of a session, returns -ENXIO. + For processes that are not part of a user unit or session, returns + -ENXIO. sd_bus_creds_has_effective_cap() will check whether the capability specified by @@ -506,8 +509,10 @@ sd_bus_creds_get_user_slice(), and sd_bus_creds_get_session() if the process is not part of a systemd system unit, systemd user unit, systemd - slice, or logind session. It will also be returned by - sd_bus_creds_get_exe() and + slice, or logind session. It will be returned by + sd_bus_creds_get_owner_uid() if the process is + not part of a systemd user unit or logind session. It will also be + returned by sd_bus_creds_get_exe() and sd_bus_creds_get_cmdline() for kernel threads (since these are not started from an executable binary, nor have a command line), and by diff --git a/man/sd_pid_get_session.xml b/man/sd_pid_get_owner_uid.xml similarity index 85% rename from man/sd_pid_get_session.xml rename to man/sd_pid_get_owner_uid.xml index 14ebd53e36..5a2a07d096 100644 --- a/man/sd_pid_get_session.xml +++ b/man/sd_pid_get_owner_uid.xml @@ -21,10 +21,10 @@ along with systemd; If not, see . --> - + - sd_pid_get_session + sd_pid_get_owner_uid systemd @@ -38,30 +38,30 @@ - sd_pid_get_session + sd_pid_get_owner_uid 3 - sd_pid_get_session - sd_pid_get_unit - sd_pid_get_user_unit sd_pid_get_owner_uid + sd_pid_get_session + sd_pid_get_user_unit + sd_pid_get_unit sd_pid_get_machine_name sd_pid_get_slice sd_pid_get_user_slice sd_pid_get_cgroup - sd_peer_get_session - sd_peer_get_unit - sd_peer_get_user_unit sd_peer_get_owner_uid + sd_peer_get_session + sd_peer_get_user_unit + sd_peer_get_unit sd_peer_get_machine_name sd_peer_get_slice sd_peer_get_user_slice sd_peer_get_cgroup - Determine session, unit, owner of a session, - container/VM or slice of a specific PID or socket - peer + Determine the owner uid of the user unit or session, + or the session, user unit, system unit, container/VM or slice that + a specific PID or socket peer belongs to. @@ -69,15 +69,15 @@ #include <systemd/sd-login.h> - int sd_pid_get_session + int sd_pid_get_owner_uid pid_t pid - char **session + uid_t *uid - int sd_pid_get_unit + int sd_pid_get_session pid_t pid - char **unit + char **session @@ -87,9 +87,9 @@ - int sd_pid_get_owner_uid + int sd_pid_get_unit pid_t pid - uid_t *uid + char **unit @@ -117,15 +117,15 @@ - int sd_peer_get_session + int sd_peer_get_owner_uid int fd - char **session + uid_t *uid - int sd_peer_get_unit + int sd_peer_get_session int fd - char **unit + char **session @@ -135,9 +135,9 @@ - int sd_peer_get_owner_uid + int sd_peer_get_unit int fd - uid_t *uid + char **unit @@ -169,16 +169,34 @@ Description + sd_pid_get_owner_uid() may be used to + determine the Unix UID (user identifier) which owns the login + session or systemd user unit of a process identified by the + specified PID. For processes which are not part of a login session + and not managed by a user manager, this function will fail with + -ENODATA. + sd_pid_get_session() may be used to determine the login session identifier of a process identified by the specified process identifier. The session identifier is a - short string, suitable for usage in file system paths. Note that - not all processes are part of a login session (e.g. system service - processes, user processes that are shared between multiple - sessions of the same user, or kernel threads). For processes not - being part of a login session, this function will fail with - -ENODATA. The returned string needs to be freed with the libc - -ENODATA. + The returned string needs to be freed with the libc free3 + call after use. + + sd_pid_get_user_unit() may be used to + determine the systemd user unit (i.e. user service or scope unit) + identifier of a process identified by the specified PID. The + unit name is a short string, suitable for usage in file system + paths. For processes which are not managed by a user manager, this + function will fail with -ENODATA. The + returned string needs to be freed with the libc free3 call after use. @@ -186,37 +204,21 @@ determine the systemd system unit (i.e. system service or scope unit) identifier of a process identified by the specified PID. The unit name is a short string, suitable for usage in file system - paths. Note that not all processes are part of a system - unit/service (e.g. user processes, or kernel threads). For - processes not being part of a systemd system unit, this function - will fail with -ENODATA. (More specifically, this call will not - work for kernel threads.) The returned string needs to be freed - with the libc -ENODATA. + (More specifically, this call will not work for kernel threads.) + The returned string needs to be freed with the libc free3 call after use. - sd_pid_get_user_unit() may be used to - determine the systemd user unit (i.e. user service or scope unit) - identifier of a process identified by the specified PID. This is - similar to sd_pid_get_unit(), but applies to - user units instead of system units. - - sd_pid_get_owner_uid() may be used to - determine the Unix UID (user identifier) of the owner of the - session of a process identified the specified PID. Note that this - function will succeed for user processes which are shared between - multiple login sessions of the same user, whereas - sd_pid_get_session() will fail. For processes - not being part of a login session and not being a shared process - of a user, this function will fail with -ENODATA. - sd_pid_get_machine_name() may be used to determine the name of the VM or container is a member of. The machine name is a short string, suitable for usage in file system paths. The returned string needs to be freed with the libc free3 - call after use. For processes not part of a VM or containers, this + call after use. For processes not part of a VM or container, this function fails with -ENODATA. sd_pid_get_slice() may be used to @@ -246,10 +248,10 @@ functions is passed as 0, the operation is executed for the calling process. - The sd_peer_get_session(), - sd_peer_get_unit(), + The sd_peer_get_owner_uid(), + sd_peer_get_session(), sd_peer_get_user_unit(), - sd_peer_get_owner_uid(), + sd_peer_get_unit(), sd_peer_get_machine_name(), sd_peer_get_slice(), sd_peer_get_user_slice() and