| PKCHECK(1) | pkcheck | PKCHECK(1) |
.SH "NAME" pkcheck - Check whether a process is authorized
.SH "SYNOPSIS"
.HP 192u
pkcheck
[--version]
[--help|-h]
.HP 192u
pkcheck
[--list-temp]
.HP 192u
pkcheck
[--revoke-temp]
.HP 192u
pkcheck
--action-id|-a action
{
|
--process|-p { | pid | pid,pid-start-time | pid,pid-start-time,uid }
| --system-bus-name|-s busname
}
[
| --allow-user-interaction|-u
]
[
| --enable-internal-agent
]
[
| --detail|-d key value
...]
.SH "DESCRIPTION"
.PP pkcheck is used to check whether a process, specified by either
--process (see below) or --system-bus-name, is authorized for
action. The --detail option can be used zero or more times to
pass details about action. If --allow-user-interaction is
passed, pkcheck blocks while waiting for authentication.
.PP The invocation pkcheck --list-temp will list all temporary
authorizations for the current session and pkcheck --revoke-temp will
revoke all temporary authorizations for the current session.
.PP This command is a simple wrapper around the polkit D-Bus interface; see
the D-Bus interface documentation for details.
.SH "RETURN VALUE"
.PP If the specified process is authorized, pkcheck exits with a
return value of 0. If the authorization result contains any details, these
are printed on standard output as key/value pairs using environment style
reporting, e.g. first the key followed by a an equal sign, then the value
followed by a newline.
KEY1=VALUE1 KEY2=VALUE2 KEY3=VALUE3 ...
Octets that are not in [a-zA-Z0-9_] are escaped using octal codes prefixed with \. For example, the UTF-8 string føl,你好 will be printed as f\303\270l\54\344\275\240\345\245\275.
.PP If the specified process is not authorized, pkcheck exits with a
return value of 1 and a diagnostic message is printed on standard error.
Details are printed on standard output.
.PP If the specified process is not authorized because no suitable
authentication agent is available or if the --allow-user-interaction
wasn't passed, pkcheck exits with a return value of 2 and a
diagnostic message is printed on standard error. Details are printed on
standard output.
.PP If the specified process is not authorized because the authentication
dialog / request was dismissed by the user, pkcheck exits with a
return value of 3 and a diagnostic message is printed on standard error.
Details are printed on standard output.
.PP If an error occurred while checking for authorization, pkcheck
exits with a return value of 127 with a diagnostic message printed on
standard error.
.PP If one or more of the options passed are malformed, pkcheck exits
with a return value of 126. If stdin is a tty, then this manual page is also
shown.
.SH "NOTES"
.PP Do not use either the bare pid or pid,start-time syntax
forms for --process. There are race conditions in both. New code
should always use pid,pid-start-time,uid. The value of
start-time can be determined by consulting e.g. the proc(5)
file system depending on the operating system. If fewer than 3 arguments are
passed, pkcheck will attempt to look up them up internally, but note
that this may be racy.
.PP If your program is a daemon with e.g. a custom Unix domain socket, you
should determine the uid parameter via operating system mechanisms
such as PEERCRED.
.SH "AUTHENTICATION AGENT"
.PP pkcheck, like any other polkit application, will use the
authentication agent registered for the process in question. However, if no
authentication agent is available, then pkcheck can register its own
textual authentication agent if the option --enable-internal-agent is
passed.
.SH "AUTHOR"
.PP Written by David Zeuthen <davidz@redhat.com> with a lot of help
from many others.
.SH "BUGS"
.PP Please send bug reports to either the distribution or the polkit-devel
mailing list, see
https://github.com/polkit-org/polkit#bugs-and-development.
.SH "SEE ALSO"
.PP polkit(8), polkitd(8), pkaction(1),
pkexec(1), pkttyagent(1)
| May 2009 | polkit |