Как выполнить скрипты команд root от имени пользователя, отличного от root, с использованием SUID?

Как выполнить скрипты команд root от имени пользователя, отличного от root, с использованием SUID?

Я хочу выполнить скрипт, встраивающий команды, требующие пользователя 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

Связанный контент