kmem 그룹의 구성원이 /dev/mem에 대한 루트가 아닌 읽기 액세스에 실패했습니다.

kmem 그룹의 구성원이 /dev/mem에 대한 루트가 아닌 읽기 액세스에 실패했습니다.

루트가 아닌 사용자로 사용하려고 합니다 /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그룹 멤버십(장치를 열 수 있도록) 및 바이너리 기능이 필요합니다.

관련 정보