/* * $ gcc `pkg-config --cflags dbus-1` `pkg-config --ldflags dbus-1` -o dbus_setuid dbus_setuid.c * # chown root:root dbus_setuid * # chmod u+s dbus_setuid * $ ./dbus_setuid */ #include #include #include #include int main(int argc, char **argv) { DBusConnection *dbus = NULL; DBusError error; printf("UID: %u | EUID: %u\n", getuid(), geteuid()); dbus_error_init(&error); if (!(dbus = dbus_bus_get(DBUS_BUS_SYSTEM, &error))) { printf("Connection failed: %s\n", error.message); dbus_error_free(&error); return (1); } printf("Connected.\n"); dbus_connection_unref(dbus); return (0); }