I found a solution. If I understand this right, a program which wants to broadcast to the network needs to be in the "inet" group.

So for avahi the solution was to put user "avahi" in the supplementary group "inet".

For another program (snapserver) this wasn't enough, because the forking mechanism doesn't pass the permissions of the supplementary groups to the forked process. So either you can make it a none forking process and start it as a simple systemd.service[1] or you start it as <processuser>:inet [2][3]

[1] https://build.merproject.org/package/view_file/home:fooxl:sailfish/snapcast/snapserver-nofork.service?expand=1
[2]https://build.merproject.org/package/view_file/home:fooxl:sailfish/snapcast/snapserver.default?expand=1
[3]https://build.merproject.org/package/view_file/home:fooxl:sailfish/snapcast/snapserver.service?expand=1

cheers, Michael.


Am 18.01.2018 um 16:53 schrieb Michael Fuchs:
Hi,

I'm trying to use avahi on Sailfish.

I built it here:

https://build.merproject.org/package/show/home:fooxl:sailfish/avahi-simple

In the emulator it runs fine by starting it via systemctl

# systemctl start avahi-daemon

The daemon forks and drops its privileges to avahi:avahi.

But on the device (JollaC) it complains about
    socket() failed: Permission denied

If I start it with

# avahi-daemon --no-drop-root

as root, it runs also fine on the device.

Could somebody please give me a hint, how to investigate this issue?

greetz, Michael.
_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org
_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

Reply via email to