2017-02-11 19 views
4

複数のユーザーからCプログラムを実行しようとしていて、プログラム内の他のユーザーとしてログインしてファイルにアクセスしようとしています。しかし、私はエラーsudoなしでsetuid()を含むCプログラムを実行できますか?

のsetuidを取得しています。操作は

を許可されていない、私はそのようなものが、私はsudoのを毎回使用する必要はありません、何かを行うことができますか?同様に、毎回sudoを呼び出さずにsetuidを使用するプログラムに完全にアクセスできるようにしますか?

+0

この質問はおそらくスーパーユーザに属しています。 'sudo chmod u + s your_program'のようにSUIDファイル属性を設定することで解決します – flaviodesousa

+0

正しいユーザーの下でオンデマンドでプログラムにまたがってルート所有サーバーを作成することも考えられます(または、 。 – eckes

答えて

4

システムに応じて、そしてあなたの権限、あなたはにプログラムの所有者またはグループを変更することができるかもしれません

chgrp wheel my-awesome-program 
chmod g+s my-awesome-program 
:権限setuidをした後、 chmod経由で実行可能に のsetuidまたは setgidのモードを設定するを持っている

または

chown superduperuser my-awesome-program 
chmod u+s my-awesome-program 

そうすることによって、あなたは潜在的なセキュリティホールを作成することに注意してください。誰かがあなたのプログラムを上書きすることができれば、それを使って特権を得ることができます。これは慎重に行ってください。

2

あなただけchmodを使用して、プログラムの実行可能ファイル自体にsetuidを使用する必要があります。それに

sudo chmod u+s executable 
関連する問題