どんなプログラムを実行するとして誰もいない?
質問
したいユーザー特権的なルート)プロセス開始に新しいプロセスとしてユーザー nobody
.私た直通 setuid
失敗すると-1 EPERM
月 Ubuntu 8.04
:
#include <sys/types.h>
#include <unistd.h>
int main() {
setuid(65534);
while (1);
return 0;
}
どうすればよいこのょうか?
解決
す ま 要する案内、多くの信頼からシステム管理者が行います。通常のユーザーは走ることができるの実行ファイルの代わりに他のユーザーます。
彼女が追加でお申込み /etc/sudoers
適切に設定することができるでし sudo -u nobody
.この両方のスクリプトおよびバイナリ実行可能ファイル.
別のオプションがいい chown nobody
や chmod +s
おバイナリ実行可能とだけを実行することができるようになストールしてくださいこの作業を繰り返す必要がありますの各時期を実行ファイル変えます。
これも作業のためのスクリプトの場合だけを作る小さなヘルパーの実行だけではな exec("/home/you/bin/your-application")
.この実行が可能でsuid-誰もいない(上記参照)をご自由に変更 your-application
.
他のヒント
しかできないませんが根やsudoを設定できるように切り替えます。やきは、実行ファイルのsuidビットセットアップで、その所有する誰もいない.が必要とするルートアクセスす。
に誰もいない"ユーザーはまだまだユーザーです。お使いいただくことによってご推論はこのプログラムとして誰もいないでくなってしまうことが追加追加す。る可能性が高くなりますので開き自分の問題を抱えてきました。
私のフォロsquadette勧めのヘルパーアプリ。
calife
が代替 sudo
.
Califeは小さなプログラムにより、UNIXシステム管理者となるルート(または別のユーザー)氏機を与えることなくルートパスワードがります。
を行ったの setuid-サンドボックス プロジェクトの今を読みながらLWN、私が求めていたものが必要です。