Hi Lennart, Thanks for the reply 😊 I had seen SD_BUS_METHOD function. But my doubt was bit different. check_access function get the variable v as shown below /* Then, look for a known method */ vtable_key.path = (char*) p; vtable_key.interface = m->interface; vtable_key.member = m->member; v = hashmap_get(bus->vtable_methods, &vtable_key); But SD_BUS_METHOD does not show how to add a path and interface, it just takes member. That got me bit confused. As in how to mention path and interface while making the vtable entry. Another question I had is what is the clean way of adding vtable entry in code. As in, as maintainer do you have a recommendation on how I do this? Right now I am thinking of adding a new file and making it part of systemd which will have a function which will make the vtable entry. And call this function somewhere from boot of systemd. Your comments here will be helpful. Regards, Arun Lal K M -----Original Message----- From: Lennart Poettering <lennart@xxxxxxxxxxxxxx> Sent: Friday, March 31, 2023 3:30 PM To: Lal, Arun <arun.lal@xxxxxxxxx> Cc: systemd-devel@xxxxxxxxxxxxxxxxxxxxx Subject: Re: How to make vtable entry as SD_BUS_VTABLE_UNPRIVILEGED On Fr, 31.03.23 05:32, Lal, Arun (arun.lal@xxxxxxxxx) wrote: > Hi All, > > In file systemd\src\libsystemd\sd-bus\bus-objects.c function check_access has the following check: > > /* If the member is marked UNPRIVILEGED let's grant access */ > if (c->vtable->flags & SD_BUS_VTABLE_UNPRIVILEGED) > return 0; > > Can someone tell me how to set the flag as SD_BUS_VTABLE_UNPRIVILEGED? > > This is because I want a non-root user to make dbus method call. As of now this get's blocked in check_access function. > I would like to allow this by satisfying the condition > c->vtable->flags & SD_BUS_VTABLE_UNPRIVILEGED There are roughly a bazillion examples in the systemd source tree for that. For example here: https://github.com/systemd/systemd/blob/main/src/login/logind-session-dbus.c#L857 Lennart -- Lennart Poettering, Berlin