システムコマンドを介してのみCプログラムからファイルを読み取ることができます。

システムコマンドを介してのみCプログラムからファイルを読み取ることができます。

program.cCプログラムと同じディレクトリにあるファイルには、コマンドを含むsystem("/bin/cat file.txt")Cプログラムがあります。file.txtこれで、ユーザーが単にfile.txtを読むのを防ぎたいと思いますcat file.txt。ただし、./program 1234システムコマンドを実行するときに内容を表示する必要がありますfile.txt。このためにファイル権限をどのように変更しますか?

答え1

プロセスに高い権限(この場合はファイルを読み取ることはできますが、一般ユーザーは読み取ることができません)を与えるのがSUID / SGIDによって実行される操作です。 UID/EUID全体の混乱を注意深く読んでください。これは完全に些細なことではありません。

あなた可能これを行うためのグループを作成し、プログラムSGIDを使用して、グループが所有し、ルートのみを書き込むことができ、グループが読み取ることができるファイルを作成します。ゲームでは、高得点ファイルの書き込み制限に似た機能を使用します。

関連情報