Из того, что я понимаю, я могу создать UDEV
запускать скрипт, например Когда USB-устройство подключено:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0123", ATTRS{idProduct}=="0815", SYMLINK+="mydevice", ACTION=="add", RUN+="/path/to/my/script.sh"
Мой вопрос сейчас, который имел ли права на этот скрипт?
Я нашел два вопроса, которые относятся к теме:
Sudo
для запуска Уведомление
Как и тот же пользователь (не как root
) ", который мне подразумевает, что а) скрипт имеет право на sudo
и b) будет работать как root
Если вы не укажете пользователь , я не мог найти никакой документации, которая вышла за пределы заявления о том, что параметр Run
существует для правил UDEV
, касающихся его прав и способностей.
Как правило, если не указано иное, программы, запущенные чем-то, запускаются как тот же пользователь, что и что-то. В этом случае это SystemD-UDEVD
, и он работает как root, поэтому программы выполняются как root (поэтому вам нужно использовать sudo
, чтобы запустить как другой пользователь).
Даже так, Существуют некоторые ограничения :
Обратите внимание, что запущенные программы, которые доступа к сети или файловые системы доступа или монтажа / разморьма не допускаются внутри правил UDEV, из-за того, что песочница по умолчанию используется на
SystemD-Udevd.service
.