web-dev-qa-db-ja.com

/ proc / self / pagemapファイルの権限を変更するにはどうすればよいですか?

Sudochmodを使用してページマップファイルのパーミッションを755または744に変更したい。しかし、コマンドは操作が許可されていないというエラーをスローしています。動機は、ユーザーがSudoアクセスを許可せずに(独自の)ページマップファイルを読み取れるようにすることです。

ユーザーがSudoアクセスを持っている場合、それは機能しており、ページマップファイルの読み取りを許可しました。ただし、ユーザーがSudoにアクセスできないようにしたいのですが、このページマップファイルを単独で読み取れるようにする必要があります。

1
ANTHONY

Linuxカーネルでは、4.0以降、/proc/<pid>/pagemapSudoが必要です。

これは次の場所で文書化されています: https://github.com/torvalds/linux/blob/v4.9/Documentation/vm/pagemap.txt

   Since Linux 4.0 only users with the CAP_SYS_ADMIN capability can get PFNs.
   In 4.0 and 4.1 opens by unprivileged fail with -EPERM.  Starting from
   4.2 the PFN field is zeroed if the user does not have CAP_SYS_ADMIN.
   Reason: information about PFNs helps in exploiting Rowhammer vulnerability.

ここで、CAP_SYS_ADMINは基本的に「Sudoとして実行」を意味します。

Sudo setcap cap_sys_admin+ep program_that_uses_pagemap
./program_that_uses_pagemap

/procは仮想ファイルシステムです であることに注意してください。したがって、Linuxカーネルは、PFNを設定することにより、セキュリティ上の理由から、ここで行うように、追加のアクセス許可を適用するか、ルート以外の結果を任意に変更するかを選択できます。ゼロに。

/etc/init/mounted-proc.confファイルの権限を変更してみてください。

script
    chmod 0444 "${MOUNTPOINT}"/self/pagemap
end script

procは、カーネルによって生成される仮想ファイルシステムです。パーミッションを変更できない場合は、カーネルで許可されておらず、カーネルを変更することによってのみ解決できます。

0
switch87