DBus Specification

The backends are a single executable application containing the following DBus Objects:

GroupsConfigControls group settings in /etc/groups
HostsConfigControls how to access other hosts (namely, /etc/hosts, DNS servers and search domains
IfacesConfigControls the network interfaces configuration (Ethernet, Wireless, Modem, ISDN, ...)
NFSConfigControls the NFS exports configuration
NTPConfigControls the NTP service configuration
ServicesConfigControls the services that start/stop in the available runlevels
SMBConfigControls the Samba configuration
TimeConfigControls date/time and timezone
UsersConfigControls users settings in /etc/passwd and /etc/shadow

All these objects implement the org.freedesktop.SystemToolsBackends interface. This interface provides 2 methods:

getRetrieves the configuration from the system
setSaves the configuration to the system

The get method will return a data structure, which format depends on the object that has been requested, and the set method will accept exactly the same data structure format for the same object.

Data structure formats

GroupsConfig

Array Structure
(Defines a group)
String Group name
String Group password
Integer32 Group ID (GID)
Array String List of usernames that are members of the group
Integer32 Minimum GID for non-system groups
Integer32 Maximum GID for non-system groups

HostsConfig

String Hostname
String Domainname
Array Structure
(Defines a host alias)
String IP Address for the static host
Array String Array of names for the static host
Array String Array of IP Adresses of DNS Servers
Array String Array of search domains

IfacesConfig

Array Structure
(Represents an ethernet interface)
String Interface name
Integer32 Whether the interface is enabled
Integer32 Whether the interface is enabled automatically at boot time
Integer32 Method to obtain the IP address:
  • 1: Static IP
  • 2: DHCP
String IP address
String Network mask
String Network base address
String Broadcast address
Array Structure
(Represents a wireless interface)
String Interface name
Integer32 Whether the interface is enabled
Integer32 Whether the interface is enabled automatically at boot time
Integer32 Method to obtain the IP address:
  • 1: Static IP
  • 2: DHCP
String IP address
String Network mask
String Network base address
String Broadcast address
String Wireless network ESSID
Integer32 Wireless network encryption method:
  • 0: ASCII key
  • 1: Hexadecimal key
String Wireless network key
Array Structure
(Represents a IRLan interface)
String Interface name
Integer32 Whether the interface is enabled
Integer32 Whether the interface is enabled automatically at boot time
Integer32 Method to obtain the IP address:
  • 1: Static IP
  • 2: DHCP
String IP address
String Network mask
String Network base address
String Broadcast address
Array Structure
(Represents a PLIP interface)
String Interface name
Integer32 Whether the interface is enabled
Integer32 Whether the interface is enabled automatically at boot time
String IP address
String Remote IP address
Array Structure
(Represents a PPP interface)
String Interface name
Integer32 Whether the interface is enabled
Integer32 Whether the interface is enabled automatically at boot time
String Phone number
String Phone number prefix
String Serial port
Integer32 Modem volume (0-3)
Integer32 Dial mode:
  • 0: Tones
  • 1: Pulses
String Login
String Password
Integer32 Whether to set the interface as the default gateway
Integer32 Whether to update DNS when the modem connects
Integer32 Whether to persist if the connection fails
Integer32 Whether to require the other peer to authenticate itself
Array Structure
(Represents a ISDN interface)
String Interface name
Integer32 Whether the interface is enabled
Integer32 Whether the interface is enabled automatically at boot time
String Phone number
String Phone number prefix
String Login
String Password
Integer32 Whether to set the interface as the default gateway
Integer32 Whether to update DNS when the modem connects
Integer32 Whether to persist if the connection fails
Integer32 Whether to require the other peer to authenticate itself

NFSConfig

Array Structure
(Represents a NFS share)
String Path to the shared folder
Array Structure
(Represents Share ACL)
String Host/IP address/Network address
Integer32 TRUE if it's read only for the defined host/group, FALSE otherwise

NTPConfig

Array String Hostname or IP Address of a NTP server

ServicesConfig

Array String List of runlevel names
String Name of the current runlevel
Array Structure
(Represents an init.d service)
String Service name
Array Structure
(Represents the service state for a runlevel)
String Runlevel name that the structure represents
Integer32 0 if the service starts in the runlevel, 1 if it is stopped for the runlevel
Integer32 Priority for the service in the runlevel. This may be ignored for distributions that don't have this concept.

SMBConfig

Array Structure
(Represents a SMB share)
String Share name
String Path to shared folder
String Comment
Integer32 Whether the share is available
Integer32 Whether the share is browsable
Integer32 Whether the share is public
Integer32 Whether the share is writeable
String Workgroup
String Description for other hosts
Integer32 Whether the computer has a WINS Server role
String WINS Server hostname/IP address

TimeConfig

Integer32 Year
Integer32 Month (From 0 to 11)
Integer32 Month day
Integer32 Hour (UTC)
Integer32 Minutes (UTC)
Integer32 Seconds (UTC)
String Timezone

UsersConfig

Array Structure
(Represents an user)
String User login name
String User Encrypted Password
Integer32 User ID (UID)
Integer32 Main group GID
Structure String First field in GECOS fields, usually full name
String Second field in GECOS fields, usually Office/Location
String Third field in GECOS fields, usually work phone
String Fourth field in GECOS fields, usually home phone
String Fifth (and continuing) field(s) in GECOS fields, reserved for aditional data
String Home directory path
String Shell
Array String Available shells
Integer32 Whether the system uses MD5 to store the passwords
Integer32 Minimum UID for new non-system users
Integer32 Maximum UID for new non-system users
String Default basedir for home directories
String Default shell for new users
Integer32 Default main group GID for new users
Project hosted in FreeDesktop.org