루트가 아닌 사용자로 사용하려고 합니다 /dev/mem
. 다음 권한을 확인하세요 /dev/mem
.
~/w/e/setup ❯❯❯ ls -lha /dev/ | grep mem
crw-r----- 1 root kmem 1, 1 Oct 15 09:29 mem
kmem
제가 이해한 바에 따르면, 그룹 회원은 다음을 읽을 수 있어야 합니다 /dev/mem
.
~/w/e/setup ❯❯❯ groups
docker users video uucp kmem wheel autologin
현재 사용자는 이 그룹의 구성원이므로 kmem
이 그룹에서 내용을 읽으려고 합니다 /dev/mem
.
~/w/e/setup ❯❯❯ head /dev/mem | hexdump -C
head: cannot open '/dev/mem' for reading: Operation not permitted
놀랍게도 수술은 허용되지 않았습니다. 루트로 로그인하면 동일한 작업을 수행할 수 있습니다.
/dev/mem
내가 그룹 구성원으로서 글을 읽을 수 없는 이유를 누군가 설명해 줄 수 있나요 kmem
? /dev/mem
특정 사용자에 대해 루트가 아닌 읽기 전용 액세스를 활성화하는 방법은 무엇입니까 ?
답변1
/dev/mem
만 열 수 있습니다과정을 통해CAP_SYS_RAWIO
; head
, 루트로 실행되지 않으며 이 기능이 없습니다. 다음을 사용하여 이 문제를 "수정"할 수 있습니다 setcap
(단, 바이너리 복사본에서만 이 작업을 수행하십시오...).
cp /usr/bin/head .
sudo setcap cap_sys_rawio+ep head
./head /dev/mem | hexdump -C
따라서 특정 사용자에 대한 액세스를 활성화하려면 /dev/mem
그룹 멤버십(장치를 열 수 있도록) 및 바이너리 기능이 필요합니다.