Sudochmodを使用してページマップファイルのパーミッションを755または744に変更したい。しかし、コマンドは操作が許可されていないというエラーをスローしています。動機は、ユーザーがSudoアクセスを許可せずに(独自の)ページマップファイルを読み取れるようにすることです。
ユーザーがSudoアクセスを持っている場合、それは機能しており、ページマップファイルの読み取りを許可しました。ただし、ユーザーがSudoにアクセスできないようにしたいのですが、このページマップファイルを単独で読み取れるようにする必要があります。
Linuxカーネルでは、4.0以降、/proc/<pid>/pagemap
にSudo
が必要です。
これは次の場所で文書化されています: 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は、カーネルによって生成される仮想ファイルシステムです。パーミッションを変更できない場合は、カーネルで許可されておらず、カーネルを変更することによってのみ解決できます。