Сервис, который вполняет нужную команду по требованию

Подскажите, пожалуйста, можно ли написать такой сервис \ демон, который выполняет определенную команду от рута (например pacman -Sy, ну как пример). Но чтобы этот сервис можно было пнуть от обычного пользователя без запроса пароля? Возможно ли вообще такое?
начните с suid может sudo...
systemd может только обрезать привилегии своих сервисов.
Ошибки в тексте-неповторимый стиль автора©
Скрипт - можно:
https://wiki.archlinux.org/index.php/Sudo#Sudoers_default_file_permissions

Запустить скрипт при помощи systemd:
https://askubuntu.com/questions/919054/how-do-i-run-a-single-command-at-startup-using-systemd

Чтобы оба условия (именно демон и именно из-под sudoers) - не знаю, не пробовал, по отдельности - работает.
Shatur, можно внести программу в /etc/sudoers
например так shatur ALL = NOPASSWD: /usr/bin/pacman где shatur - имя юзверя в системе

ещё можно suid бит программе дать, после чего она получает доступ к рут привилегиям, например chmod +s /usr/bin/smartctl

но это резко понижает безопасность, нужно понимать, где можно так делать, а где нет

насчёт сервиса, ну так сделать простую обёртку которая работает от рута, принимает на вход команды и выполняет их уже от имени себя(а значит рута)
grayich, indeviral, но разве задание suid потом при исполнении файла требует запускать его от рута? Т.е. потом все равно придется использовать sudo :(

Если задать в /etc/sudoers программу это то это поможет. И сервис тогда не нужен будет. Но будет не очень безопасно, думаю...

А вот создание сервиса, который работает от рута и которого можно попросить выполнить команду (даже не любую, а одну определенную) выглядит как то, что мне нужно... (что-то подобное предложил Andy_Vetrov). Но как оформить такой сервис, чтобы его мог пнуть пользователь без ввода пароля. Разобрался. Создал сервис, который работает от рута, как вы и предложили (просто выполняет одну команду), а дальше дал через polkit запускать его обычным юзерам. Всем спасибо :)
Shatur, ничего личного, но ты извращенец...(в техническом смысле, если что)
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
Shatur, ничего личного, но ты извращенец…
не нашел более простого способа ) Pamac и Octopi делают точно так же.
Shatur
grayich, indeviral, но разве задание suid потом при исполнении файла требует запускать его от рута? Т.е. потом все равно придется использовать sudo :(
+s не требует запускать от root, можно запускать простым пользователем без судо

внесение записи в sudoerc требует запускать через sudo но пароль просить не будет
Shatur
Подскажите, пожалуйста, можно ли написать такой сервис \ демон, который выполняет определенную команду от рута (например pacman -Sy, ну как пример). Но чтобы этот сервис можно было пнуть от обычного пользователя без запроса пароля? Возможно ли вообще такое?
Может вот такой вариант поможет?
grayich
+s не требует запускать от root, можно запускать простым пользователем без судо
Хм, я пробовал создать скрипт с таким телом:

#!/bin/bash
pacman -Sy

Потом дал ему права:

sudo chmod +xs ~/test.sh

Пробую запустить:

./test.sh
ошибка: для выполнения этой операции требуются права root.

А вот если запустить этот же файл с sudo, то пароль не просит и скрипт запускается. Может надо еще какие-то права выдать, чтобы запускалось без sudo?

[email protected]
Может вот такой вариант поможет?
Интересный вариант :)
 
Зарегистрироваться или войдите чтобы оставить сообщение.