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)](/man/os/polkit/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 &lt;davidz@redhat.com&gt; 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)](/man/os/polkit/polkit.8), [**polkitd**(8)](/man/os/polkit/polkitd.8), [**pkaction**(1)](/man/os/polkit/pkaction.1), [**pkexec**(1)](/man/os/polkit/pkexec.1), [**pkttyagent**(1)](/man/os/polkit/pkttyagent.1)

May 2009 polkit

---

Document: pkcheck(1) from polkit 128-r0 (Chainguard OS)
Source: https://github.com/polkit-org/polkit.git
