/proc/<pid>/
一部のプロセス(bashなど)では、プロセスを作成したユーザーがリソース全体を読み取ることができることがわかりました。ただし/proc/<pid>/
、プロセス自体は通常のユーザーが所有し、suidを呼び出すことはありませんが、他のプロセス(chromeやgnome-keyring-daemonなど)のほとんどのリソースはルートからのみアクセスできます。
カーネルを調べたところ、タスクに「ダンプ可能」フラグがないと、/ proc /の内容が制限されることがわかりました。しかし、作業がダンプ不可能になる時点を理解するのが困難です(setuidを除く)。クロムやGNOMEキーリングを適用しないでください):
https://github.com/torvalds/linux/blob/164c09978cebebd8b5fc198e9243777dbaecdfa0/fs/proc/base.c#L1532
誰もがこれの基本的なメカニズムとその理由を理解するのを助けたいですか?
ありがとうございます!
編集する:
ユーザーがSSHエージェントをダンプできないようにする理由に関する良いドキュメントが見つかりましたgnome-keyring-daemon
(例:)。まだわからないどのように gnome-keyring-daemon
自分を抑えられないようにしてください。
答え1
Linuxにはフラグを変更するシステムコールがありますdumpable
。以下はいくつかのサンプルコードです。私は書いた数年前:
#include <sys/prctl.h>
...
/* The last three arguments are just padding, because the
* system call requires five arguments.
*/
prctl(PR_SET_DUMPABLE,1,42,42,42);
セキュリティ上の理由から、gnome-keyring-daemon
フラグは意図的にゼロに設定される可能性がありますdumpable
。