dbus-daemon(1) | General Commands Manual | dbus-daemon(1) |
NAME
dbus-daemon - Message bus daemonSYNOPSIS
dbus-daemon dbus-daemon [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork]DESCRIPTION
dbus-daemon is the D-Bus message bus daemon. See http://www.freedesktop.org/software/dbus/ for more information about the big picture. D-Bus is first a library that provides one-to-one communication between any two applications; dbus-daemon is an application that uses this library to implement a message bus daemon. Multiple programs connect to the message bus daemon and can exchange messages with one another.OPTIONS
The following options are supported:- --config-file=FILE
- Use the given configuration file.
- --fork
- Force the message bus to fork and become a daemon, even if the configuration file does not specify that it should. In most contexts the configuration file already gets this right, though. --nofork Force the message bus not to fork and become a daemon, even if the configuration file specifies that it should.
- --print-address[=DESCRIPTOR]
- Print the address of the message bus to standard output, or to the given file descriptor. This is used by programs that launch the message bus.
- --print-pid[=DESCRIPTOR]
- Print the process ID of the message bus to standard output, or to the given file descriptor. This is used by programs that launch the message bus.
- --session
- Use the standard configuration file for the per-login-session message bus.
- --system
- Use the standard configuration file for the systemwide message bus.
- --version
- Print the version of the daemon.
- --introspect
- Print the introspection information for all D-Bus internal interfaces.
- --address[=ADDRESS]
- Set the address to listen on. This option overrides the address configured in the configuration file.
- --systemd-activation
- Enable systemd-style service activation. Only useful in conjunction with the systemd system and session manager on Linux.
- --nopidfile
-
Don't write a PID file even if one is configured in the configuration files.
CONFIGURATION FILE
A message bus daemon has a configuration file that specializes it for a particular application. For example, one configuration file might set up the message bus to be a systemwide message bus, while another might set it up to be a per-user-login-session bus.<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
- <busconfig>
-
- <type>
-
- <include>
-
- <includedir>
-
- <user>
-
- <fork>
-
- <keep_umask>
-
- <listen>
-
- <auth>
-
- <servicedir>
-
- <standard_session_servicedirs/>
-
- <standard_system_servicedirs/>
-
- <servicehelper/>
-
- <limit>
-
<limit name="max_message_size">64</limit>
<limit name="max_completed_connections">512</limit>
"max_incoming_bytes" : total size in bytes of messages
incoming from a single connection
"max_incoming_unix_fds" : total number of unix fds of messages
incoming from a single connection
"max_outgoing_bytes" : total size in bytes of messages
queued up for a single connection
"max_outgoing_unix_fds" : total number of unix fds of messages
queued up for a single connection
"max_message_size" : max size of a single message in
bytes
"max_message_unix_fds" : max unix fds of a single message
"service_start_timeout" : milliseconds (thousandths) until
a started service has to connect
"auth_timeout" : milliseconds (thousandths) a
connection is given to
authenticate
"max_completed_connections" : max number of authenticated connections
"max_incomplete_connections" : max number of unauthenticated
connections
"max_connections_per_user" : max number of completed connections from
the same user
"max_pending_service_starts" : max number of service launches in
progress at the same time
"max_names_per_connection" : max number of names a single
connection can own
"max_match_rules_per_connection": max number of match rules for a single
connection
"max_replies_per_connection" : max number of pending method
replies per connection
(number of calls-in-progress)
"reply_timeout" : milliseconds (thousandths)
until a method call times out
- <policy>
-
context="(default|mandatory)"
at_console="(true|false)"
user="username or userid"
group="group name or gid"
- all context="default" policies are applied
- all group="connection's user's group" policies are applied
in undefined order
- all user="connection's auth user" policies are applied
in undefined order
- all at_console="true" policies are applied
- all at_console="false" policies are applied
- all context="mandatory" policies are applied
- <deny>
-
<allow>
send_interface="interface_name"
send_member="method_or_signal_name"
send_error="error_name"
send_destination="name"
send_type="method_call" | "method_return" | "signal" | "error"
send_path="/path/name"
receive_interface="interface_name"
receive_member="method_or_signal_name"
receive_error="error_name"
receive_sender="name"
receive_type="method_call" | "method_return" | "signal" | "error"
receive_path="/path/name"
send_requested_reply="true" | "false"
receive_requested_reply="true" | "false"
eavesdrop="true" | "false"
own="name"
own_prefix="name"
user="username"
group="groupname"
<deny send_destination="org.freedesktop.Service" send_interface="org.freedesktop.System" send_member="Reboot"/>
<deny send_destination="org.freedesktop.System"/>
<deny receive_sender="org.freedesktop.System"/>
<deny user="john"/>
<deny group="enemies"/>
- <selinux>
-
- <associate>
-
<associate own="org.freedesktop.Foobar" context="foo_t"/>
<associate own="*" context="foo_t"/>
If you find a reason this is useful, let the developers know. Right now the default will be the security context of the bus itself.
SELinux
See http://www.nsa.gov/selinux/ for full details on SELinux. Some useful excerpts:-
-
Every subject (process) and object (e.g. file, socket, IPC object, etc) in the system is assigned a collection of security attributes, known as a security context. A security context contains all of the security attributes associated with a particular subject or object that are relevant to the security policy.
-
-
In order to better encapsulate security contexts and to provide greater efficiency, the policy enforcement code of SELinux typically handles security identifiers (SIDs) rather than security contexts. A SID is an integer that is mapped by the security server to a security context at runtime.
-
-
When a security decision is required, the policy enforcement code passes a pair of SIDs (typically the SID of a subject and the SID of an object, but sometimes a pair of subject SIDs or a pair of object SIDs), and an object security class to the security server. The object security class indicates the kind of object, e.g. a process, a regular file, a directory, a TCP socket, etc.
-
-
Access decisions specify whether or not a permission is granted for a given pair of SIDs and class. Each object class has a set of associated permissions defined to control operations on objects with that class.
DEBUGGING
If you're trying to figure out where your messages are going or why you aren't getting messages, there are several things you can try.DBUS_VERBOSE=1 dbus-daemon --session --print-address