SUIDを使用してroot以外のユーザーからrootコマンドスクリプトを実行するには?

SUIDを使用してroot以外のユーザーからrootコマンドスクリプトを実行するには?

sudoを使用せずにroot以外のアカウントでrootを必要とするスクリプトを含めるコマンドを実行したいと思います。

/usr/local/bin/dodo

#!/bin/bash
/bin/sync && /usr/sbin/pm-suspend-hybrid

私がしたことは、ルートにして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

私の記憶が正しい場合、グループファミリのユーザーはパスワードなしでrootとしてdodoを実行する権限を取得する必要があります。しかし、結果は同じです。

私が何を見逃しているのか教えてください。私はDebianを使用しています Jessie

編集:最後の場合は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

パスワードやsudoなしで同期とpm-suspens-hybridを実行できます。

おすすめ記事