파일 기반 SELinux 부울

파일 기반 SELinux 부울

나는 그것을 원한다누바내 Debian 서버에서 SELinux 적용 모드로 실행 중입니다. Numba의 기반은 다음과 같습니다.LLVMs jit 컴파일러. 문제는 LLVM이 쓰기 가능하고 실행 가능한 메모리를 고집한다는 것입니다. ㅏ오류 보고서오랫동안 기다려왔지만 해결책이 보이지 않습니다.

allow_execmemSELinux에는 LLVM 실행을 허용하도록 시스템 전체에서 설정할 수 있는 부울 변수가 있습니다 . 하지만 이렇게 불안전한 환경을 갖고 싶지는 않습니다.

내가 원하는 것은 이 권한 집합으로 특정 종류의 프로그램을 실행하기 위한 또 다른 부울 변수를 생성하거나 일부 실행 파일에 동일한 권한을 부여하는 파일 컨텍스트를 생성하는 것입니다. 새로운 불리언을 생성하는 것은 httpd_execmem.

내가 볼 수 있는 것은 파일 수준에서 설정할 수 있는 권한 집합이 제한되어 있다는 것입니다.

# ls /sys/fs/selinux/class/file/perms
진입점 execmod 실행을 생성하기 위해 audit_access를 추가합니다.
Execute_no_trans getattr ioctl 링크 잠금 마운트 열기  
quoteon 읽기 relabel에서 relabel에서 이름 바꾸기 setattr swapon  
링크 쓰기 취소

따라서 이 내용이 올바르게 표시된다면 단순히 유형을 만들고 특정 사용자에 대한 권한을 추가하는 것만으로는 작동하지 않습니다. 이를 수행하는 직접적인 방법이 있습니까? 새로운 부울 값을 생성하려면 어떻게 해야 합니까 httpd_execmem?

답변1

작동하는 것처럼 보이는 것은 다음과 같은 자체 모듈을 만드는 것입니다.

module llvm 1.0;

require {
        class process { execmem };
};
type llvm_t;    
allow llvm_t self:process execmem;

안타깝게도 홈 디렉터리의 파일은 ecryptfs 마운트에 포함되어 있기 때문에 해당 파일에 대해 어떤 유형도 설정할 수 없는 것으로 나타났습니다. 그래서 결국 무제한 도메인 전체를 execmem과 함께 사용할 수 있도록 허용하게 되었습니다. 이는 내가 원하는 것보다 더 허용적이지만 시스템의 모든 프로세스를 실행하도록 허용하는 것보다 훨씬 낫습니다.

module llvm 1.0;

require {
        type unconfined_t;
        class process { execmem };
};
allow unconfined_t self:process execmem;

관련 정보