質問

したいユーザー特権的なルート)プロセス開始に新しいプロセスとしてユーザー nobody.私た直通 setuid 失敗すると-1 EPERMUbuntu 8.04:

#include <sys/types.h>
#include <unistd.h>

int main() { 
       setuid(65534);
       while (1);
       return 0;
}

どうすればよいこのょうか?

役に立ちましたか?

解決

要する案内、多くの信頼からシステム管理者が行います。通常のユーザーは走ることができるの実行ファイルの代わりに他のユーザーます。

彼女が追加でお申込み /etc/sudoers 適切に設定することができるでし sudo -u nobody.この両方のスクリプトおよびバイナリ実行可能ファイル.

別のオプションがいい chown nobodychmod +s おバイナリ実行可能とだけを実行することができるようになストールしてくださいこの作業を繰り返す必要がありますの各時期を実行ファイル変えます。

これも作業のためのスクリプトの場合だけを作る小さなヘルパーの実行だけではな exec("/home/you/bin/your-application").この実行が可能でsuid-誰もいない(上記参照)をご自由に変更 your-application.

他のヒント

しかできないませんが根やsudoを設定できるように切り替えます。やきは、実行ファイルのsuidビットセットアップで、その所有する誰もいない.が必要とするルートアクセスす。

に誰もいない"ユーザーはまだまだユーザーです。お使いいただくことによってご推論はこのプログラムとして誰もいないでくなってしまうことが追加追加す。る可能性が高くなりますので開き自分の問題を抱えてきました。

私のフォロsquadette勧めのヘルパーアプリ。

calife が代替 sudo.

Califeは小さなプログラムにより、UNIXシステム管理者となるルート(または別のユーザー)氏機を与えることなくルートパスワードがります。

を行ったの setuid-サンドボックス プロジェクトの今を読みながらLWN、私が求めていたものが必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top