dmesg -c: 커널 버퍼를 읽지 못했습니다. 작업이 허용되지 않습니다.

dmesg -c: 커널 버퍼를 읽지 못했습니다. 작업이 허용되지 않습니다.

커널 모듈을 사용하고 있으므로 dmesg 출력을 처리해야 합니다. 그러나 명령할 수는 없다dmesg-c. dmesg는 할 수 있지만 버퍼를 지울 수는 없습니다. 나는 다음과 같은 것들을 검색했다.

sudo sysctl kernel.dmesg_restrict =0

그러나 그들은 문제를 해결하지 못했습니다. 왜 버퍼를 지울 수 없나요?

답변1

이에 대한 설명은 다음과 같습니다.man 2 syslog: "read all"과 "size"를 제외한 모든 syslog 명령은 루트에서만 사용할 수 있습니다. dmesg_restrict모두 읽기 및 크기에 대한 액세스만 제어합니다. 1로 설정하면 루트로 제한되고, 0으로 설정하면 루트가 아닌 프로세스에서 사용할 수 있습니다.

dmesg -c모든 경우에 루트가 필요합니다(엄격히 말하면 CAP_SYS_ADMIN).CAP_SYSLOG

sudo dmesg -c

답변2

그냥 sudo dmesg -c남자들과 함께 가세요. 이미 작동한다는 것을 알고 있지만 왜 작동하지 않는지 알고 싶습니다 sudo. 그러나 만족스러운 답변이 없으므로 더 안전한 답변을 선택합니다.

관련 정보