/proc/pid/memの権限をどのように変更しますか?

/proc/pid/memの権限をどのように変更しますか?

私用プロジェクトとして、私はHaskellでエミュレートする小さなツールを書いています。スキャンメモリ

それ

  1. /proc/pid/mapsで仮想メモリ領域を検索する
  2. /proc/pid/memをスキャンして、指定された値でメモリ領域を抽出します。

まだ開発の初期段階なので、私はまだcabal replに大きく依存しています。これにより、コードを変更してすぐにインタラクティブなghci環境に入り、コードを実行できます。残念ながら、/proc/pid/memを読むにはsudo権限が必要なので、cabal replをsudoとして実行する必要があります。これをしないことをお勧めします。。小さな変更を加えるたびにコード全体を書くのではなく、すべてのユーザーがこのファイルに対する読み取り権限を持つように、特定の/proc/pid/memの権限を変更することが代替案だと思います。この特定のファイルに対してすべてのデバッグを行います。

残念ながら、私が走ろうとしたとき

sudo chmod 644 mem

結果を得ました。chmod: changing permissions of 'mem': Operation not permitted

このアイデアはただ無駄な練習でしょうか?

とても感謝しています!

答え1

変更できない権限は/proc/…/memカーネルによって強制されます。

開発タスクでは、ユーザーとして実行されているすべてのプロセスが利用可能であり、ユーザーとして実行されている/proc/…/memプロセスにアクセスできる必要があります。 (scanmemこれも実行できます。ユーザーとして実行されているプロセスのpidを指定した場合は、rootとして実行せずに分析します。)すべてのプロセスを調べたい場合は、ファイルを読み取れないmemプロセスをスキップしてください。

関連情報