Я только что написал небольшое приложение, которое изменяет файл в каталоге /sys
. В основном файл /sys/class/backlight/intel_backlight/brightness
модифицируется для регулировки яркости. Так что требуется разрешение root. Приложение написано на C ++, и я использую функцию system
для запуска команды echo (я просто хотел самое простое решение). Мне было интересно, могу ли я авторизовать приложение один раз, а затем, когда оно запускается, оно запускается от имени пользователя root. Я не хочу, чтобы приложение запрашивало разрешение root при каждом запуске.
РЕДАКТИРОВАТЬ:
$ ls -l
-rwxrwxr-x 1 res res 413934 Jul 6 22:08 BrightnessControl
Спасибо.
Может, я ошибаюсь, но я думаю, что бит suid - это то, что тебе нужно. Сначала измените владельца программы на root, затем
chmod +s <filename>
it.
Таким образом, он будет работать с учетной записью владельца файла, независимо от того, какой пользователь запускает его.
https://stackoverflow.com/questions/6905697/how-to-run-script-as-another-user-without-password посмотрите на ответ visudo [отредактируйте файл sudoers с помощью sudo visudo]
и заставить его запускаться от имени root только без запроса. https://help.ubuntu.com/community/Sudoers