
Я хочу выполнить скрипт, встраивающий команды, требующие пользователя root из моей учетной записи, не являющейся учетной записью root, без sudo:
/usr/local/bin/dodo
#!/bin/bash
/bin/sync && /usr/sbin/pm-suspend-hybrid
Я сделал его root-пользователем и установил бит SUID:
chown root:root /usr/local/bin/dodo
chmod a+xrs /usr/local/bin/dodo
Но когда я пытаюсь это выполнить, результат такой:
$ /usr/local/bin/dodo
This utility may only be run by the root user.
Я также попробовал решение sudoer, добавив файл /etc/sudoers.d/dodo
:
%family ALL = (root) NOPASSWD: /usr/local/bin/dodo
Который, если я не ошибаюсь, должен разрешить пользователям группы family запускать dodo как root без пароля. Но результат тот же.
Что я пропустил, пожалуйста? Я на Debian Jessie
EDIT: В последнем случае sudo dodo
работает без пароля.
решение1
Из ссылки AlexP и различных ответов там, вот что работает нормально:
cat /usr/local/bin/dodo
#!/bin/bash
/bin/sync
exec sudo /usr/sbin/pm-suspend-hybrid
_
ls -l /usr/local/bin/dodo
-rwxr-xr-x 1 laurent family 60 déc. 18 17:47 /usr/local/bin/dodo
_
cat /etc/sudoers.d/dodo
%family ALL = (root) NOPASSWD: /usr/sbin/pm-suspend-hybrid
Затем для всех членов семейной группы:
dodo
выполняет sync и pm-suspend-hybrid без пароля и sudo