oddjobd.conf(5) File Formats Manual oddjobd.conf(5)

# [NAME](#NAME)

oddjobd.conf - configuration for oddjobd

# [DESCRIPTION](#DESCRIPTION)

The **/etc/oddjobd.conf** configuration file specifies which services the *oddjobd* server provides over the D-Bus, and authorization rules which are enforced in addition to those enforced by the system message bus.

The configuration file is an XML document. The top-level element type is *&lt;oddjobconfig&gt;*, which contains one or more *&lt;service&gt;* elements. Each *&lt;service&gt;* describes a service which will be provided on the system-wide message bus.

Each *&lt;object&gt;* describes an object path which will will be recognized by the specified service. The object path may include wildcards, in which case any call to an object with a path name which matches the specified path will be accepted. An object contains one or more *&lt;interface&gt;* elements, each of which describes a group of methods described in *&lt;method&gt;* elements.

Each *&lt;method&gt;* element must specify the method name as a value for its *name* attribute and may include a *&lt;helper*&gt; element which the name of an executable to run as its *exec* attribute and the number of arguments which will be expected from the D-Bus client and passed to the helper as its *argument\_count* attribute. The *&lt;helper&gt;*'s *exec* attribute can include one or more command line arguments, separated from the executable by whitespace. A *&lt;helper&gt;* may also include attributes indicating whether or not the invoking user's name should be prepended to the list of arguments received as part of the D-Bus request (*prepend\_user\_name*, with recognized values "yes" or "no"), and whether that set of arguments should be passed in to the helper via stdin (the default) or on its command line (*argument\_passing\_method*, with recognized values "stdin" and "cmdline").

Each *&lt;oddjobconfig&gt;*, *&lt;service&gt;*, *&lt;object&gt;*, *&lt;interface&gt;*, or *&lt;method&gt;* element may also include authorization elements *&lt;allow&gt;* and *&lt;deny&gt;*. Each *&lt;allow&gt;* or *&lt;deny&gt;* rule specifies some combination of a user name and/or a UID range which the invoking user must match for the rule to apply. A rule can also specify the caller's SELinux context, user, role, or execution domain, and be applied or not based on whether or not policy is being enforced. All *&lt;deny&gt;* rules for the method are checked first, followed by all of its *&lt;allow&gt;* rules. If no matches are found, the *&lt;deny&gt;* rules for the containing *&lt;interface&gt;* element are checked, followed by its *&lt;allow&gt;* rules, and so on. If all ACLs are searched and no matches turn up, access is denied.

The *oddjobd* server will automatically supply information used by the D-Bus introspection mechanism on behalf of your objects, but only if the client which is requesting the information is allowed to invoke the *Introspect* method of the *org.freedesktop.DBus.Introspectable* interface provided by the object.

The configuration file may also indicate that the contents of other files should be read by the configuration parser, using an *&lt;include&gt;* element.

# [EXAMPLES](#EXAMPLES)

Here is an example file:  
&lt;?xml version="1.0"?&gt;  
&lt;oddjobconfig/&gt;

Another:  
&lt;?xml version="1.0"?&gt;  
&lt;oddjobconfig&gt;  
&lt;allow user="wally"/&gt;  
&lt;service name="com.redhat.oddjob"&gt;  
&lt;allow user="polly"/&gt;  
&lt;object name="/com/redhat/oddjob"&gt;  
&lt;allow user="holly"/&gt;  
&lt;interface name="com.redhat.oddjob"&gt;  
&lt;allow user="bob"/&gt;  
&lt;method name="pwd"&gt;  
&lt;helper exec="/bin/pwd" argument\_count="0" prepend\_user\_name="no"/&gt;  
&lt;allow user="jimmy"/&gt;  
&lt;allow user="billy"/&gt;  
&lt;allow min\_uid="0" max\_uid="1000"/&gt;  
&lt;/method&gt;  
&lt;method name="reboot"&gt;  
&lt;helper exec="/sbin/reboot" argument\_count="0"/&gt;  
&lt;/method&gt;  
&lt;method name="flush-nscd"&gt;  
&lt;helper exec="/sbin/nscd -i passwd -i group -i hosts" argument\_count="0"/&gt;  
&lt;/method&gt;  
&lt;/interface&gt;  
&lt;interface name="org.freedesktop.DBus.Introspectable"&gt;  
&lt;allow min\_uid="0" max\_uid="0"/&gt;  
&lt;/interface&gt;  
&lt;/object&gt;  
&lt;/service&gt;  
&lt;include ignore\_missing="yes"&gt;/etc/oddjobd-local.conf&lt;/include&gt;  
&lt;include ignore\_missing="yes"&gt;/etc/oddjobd.conf.d/\*.conf&lt;/include&gt;  
&lt;/oddjobconfig&gt;

And another:  
&lt;?xml version="1.0"?&gt;  
&lt;oddjobconfig&gt;  
&lt;service name="com.example.management"&gt;  
&lt;object name="/com/example/power"&gt;  
&lt;interface name="com.example.shutdown"&gt;  
&lt;method name="reboot"&gt;  
&lt;allow user="root"/&gt;  
&lt;helper exec="/sbin/reboot" argument\_count="0"/&gt;  
&lt;/method&gt;  
&lt;/interface&gt;  
&lt;interface name="org.freedesktop.DBus.Introspectable"&gt;  
&lt;allow min\_uid="0" max\_uid="0"/&gt;  
&lt;/interface&gt;  
&lt;/object&gt;  
&lt;object name="/com/example/power"&gt;  
&lt;interface name="com.example.shutdown"&gt;  
&lt;method name="poweroff"&gt;  
&lt;allow user="root"/&gt;  
&lt;helper exec="/sbin/poweroff" argument\_count="0"/&gt;  
&lt;/method&gt;  
&lt;/interface&gt;  
&lt;interface name="org.freedesktop.DBus.Introspectable"&gt;  
&lt;allow min\_uid="0" max\_uid="0"/&gt;  
&lt;/interface&gt;  
&lt;/object&gt;  
&lt;/service&gt;  
&lt;/oddjobconfig&gt;

# [SEE ALSO](#SEE_ALSO)

[**oddjob\_request**(1)](/man/enterprise-packages/oddjob/oddjob_request.1) [**oddjob.conf**(5)](/man/enterprise-packages/oddjob/oddjob.conf.5) [**oddjobd**(8)](/man/enterprise-packages/oddjob/oddjobd.8)

24 June 2015 oddjob Manual

---

Document: oddjobd.conf(5) from oddjob 0.34.7-r3 (Chainguard OS)
Source: https://pagure.io/oddjob.git
