複数のユーザーからCプログラムを実行しようとしていて、プログラム内の他のユーザーとしてログインしてファイルにアクセスしようとしています。しかし、私はエラーsudoなしでsetuid()を含むCプログラムを実行できますか?
を許可されていない、私はそのようなものが、私はsudoのを毎回使用する必要はありません、何かを行うことができますか?同様に、毎回sudoを呼び出さずにsetuidを使用するプログラムに完全にアクセスできるようにしますか?のsetuidを取得しています。操作は
複数のユーザーからCプログラムを実行しようとしていて、プログラム内の他のユーザーとしてログインしてファイルにアクセスしようとしています。しかし、私はエラーsudoなしでsetuid()を含むCプログラムを実行できますか?
を許可されていない、私はそのようなものが、私はsudoのを毎回使用する必要はありません、何かを行うことができますか?同様に、毎回sudoを呼び出さずにsetuidを使用するプログラムに完全にアクセスできるようにしますか?のsetuidを取得しています。操作は
システムに応じて、そしてあなたの権限、あなたはにプログラムの所有者またはグループを変更することができるかもしれません
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
そうすることによって、あなたは潜在的なセキュリティホールを作成することに注意してください。誰かがあなたのプログラムを上書きすることができれば、それを使って特権を得ることができます。これは慎重に行ってください。
あなただけchmod
を使用して、プログラムの実行可能ファイル自体にsetuid
を使用する必要があります。それに
sudo chmod u+s executable
この質問はおそらくスーパーユーザに属しています。 'sudo chmod u + s your_program'のようにSUIDファイル属性を設定することで解決します – flaviodesousa
正しいユーザーの下でオンデマンドでプログラムにまたがってルート所有サーバーを作成することも考えられます(または、 。 – eckes