Linux 장치 노드는 특정 프로세스 그룹에만 액세스 할 수 있습니다

StackOverflow https://stackoverflow.com/questions/1811246

  •  06-07-2019
  •  | 
  •  

문제

register_chardev ()를 수행하는 장치 드라이버 모듈이 있습니다. Driver Open () 함수에서 장치 노드를 열려고하는 프로세스의 PID 또는 PGID를 결정할 수 있기를 원합니다. 이게 가능해? 어디서부터 시작 해야할지에 대한 아이디어가 있습니까?

동일한 세션에 있지 않으면 프로세스를 새 프로세스 그룹으로 마이그레이션 할 수 없으므로 응용 프로그램 노드 만 사용하도록 허용하기 위해 장치 노드를 다소 안전해야한다고 가정합니다.

도움이 되었습니까?

해결책

커널은 이러한 종류의 정책 결정을 내릴 수있는 올바른 장소가 아닙니다. 파일 시스템에서 장치 노드 파일에서 일반적인 소유권과 권한을 설정하는 것입니다.

당신이 정말로 당신의 마음을 가지고 있다면, current->pid PID, current->tgid 스레드 그룹 ID이며 current->group_leader->pid PGID입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top