По крайней мере, в Linux вы могли бы использовать возможности , чтобы позволить программе выполнять ограниченный набор действий, как если бы она имела привилегии root.
Соответствующая возможность выглядит следующим образом:
CAP_NET_ADMIN
Perform various network-related operations:
* interface configuration;
* administration of IP firewall, masquerading, and accounting;
[...]
И вы можете установить возможность с помощьюsetcap
:
setcap cap_net_admin+ep /path/to/my_ifconfig
Альтернативой, конечно, было бы сделать программу setuid root (chmod u+s
), что позволило бы ей делать все, что может делать root. Это, очевидно, более рискованно, но должно работать и в других системах, а не только в Linux.
Вы можете захотеть ограничить, какие пользователи могут запускать файл с дополнительными разрешениями с обычными битами прав доступа к файлу, например, чтобы разрешить его запуск только членам группы netadmins
:
chown root.netadmins /path/to/my_ifconfig
chmod 0710 /path/to/my_ifconfig
Исправлено, добавлен файл в /usr/share/dbus-1/services/org.freedesktop.Notifications.service
с
[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/lib/notification-daemon/notification-daemon
в нем