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