/proc/self/pagemap 파일의 권한을 변경하는 방법은 무엇입니까?

/proc/self/pagemap 파일의 권한을 변경하는 방법은 무엇입니까?

sudo chmod를 사용하여 페이지 맵 파일 권한을 755 또는 744로 변경하고 싶습니다. 그러나 명령은 작업이 허용되지 않는다는 오류를 발생시킵니다. 그 동기는 사용자가 sudo 액세스 권한을 부여하지 않고도 페이지 맵 파일(자신의)을 읽을 수 있도록 허용하는 것입니다.

사용자에게 sudo 액세스 권한이 있고 페이지 맵 파일을 읽을 수 있을 때 작동합니다. 하지만 사용자가 sudo 액세스 권한을 갖지 못하게 하고 싶지만 이 페이지 맵 파일만 읽을 수 있도록 허용해야 합니다.

답변1

4.0부터 시작하는 Linux 커널에는 다음이 sudo필요합니다./proc/<pid>/pagemap

이는 다음 위치에 문서화되어 있습니다. 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을 0으로 설정하므로 루트가 아닌 사용자에 대해 추가 권한을 적용하거나 결과를 임의로 변경할 수도 있습니다.

답변2

파일의 권한을 변경해 볼 수 있습니다 /etc/init/mounted-proc.conf.

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

proc은 커널에 의해 생성된 가상 파일 시스템입니다. 권한을 변경할 수 없으면 커널이 이를 허용하지 않는 것이므로 커널을 변경해야만 문제를 해결할 수 있습니다.

관련 정보