program.c
Cプログラムと同じディレクトリにあるファイルには、コマンドを含むsystem("/bin/cat file.txt")
Cプログラムがあります。file.txt
これで、ユーザーが単にfile.txtを読むのを防ぎたいと思いますcat file.txt
。ただし、./program 1234
システムコマンドを実行するときに内容を表示する必要がありますfile.txt
。このためにファイル権限をどのように変更しますか?
答え1
プロセスに高い権限(この場合はファイルを読み取ることはできますが、一般ユーザーは読み取ることができません)を与えるのがSUID / SGIDによって実行される操作です。 UID/EUID全体の混乱を注意深く読んでください。これは完全に些細なことではありません。
あなた可能これを行うためのグループを作成し、プログラムSGIDを使用して、グループが所有し、ルートのみを書き込むことができ、グループが読み取ることができるファイルを作成します。ゲームでは、高得点ファイルの書き込み制限に似た機能を使用します。