사용자와 함께 실행되는 기본 시스템 서비스가 있는 Go 애플리케이션이 있습니다 web
. NGiNX는 역방향 프록시를 통해 통신하고 동일한 서버에 있는 MySQL 데이터베이스와 통신합니다. NGiNX 및 MySQL 정책은 SELinux를 사용하여 쉽게 설정할 수 있지만 평생 SELinux를 내 맞춤 Go 애플리케이션과 함께 사용할 수는 없습니다.
권한 거부 오류가 발생하지만 SELinux를 비활성화하면 모든 것이 잘 실행되므로 SELinux인 것이 확실합니다.
신청에 대해
- 포트 8080 열기
- 포트 3306을 통해 MySQL과 대화
나는 다음을 시도했다이것RedHat은 사용자 정의 애플리케이션을 구성하는 방법에 대한 지침을 제공하지만 어떤 이유로 내 애플리케이션은 스크립트를 unconfined_t
사용한 sepolicy
후와 항상 동일한 상태를 유지합니다.
노트: 이것은 Fedora 36 서버에 있습니다.
답변1
드디어 해결했습니다. 내 사용자 정의 바이너리를 태그에 추가하기만 하면 됩니다 bin_t
. 나는 이 명령을 사용한 semanage fcontext -a -t bin_t "/path/to/binary"
다음 restorecon -v /path/to/binary
.systemctl restart mybinary.service
httpd_sys_content_t
또한 동일한 명령을 사용하여 내 사이트에 정적 콘텐츠를 추가한 다음 NGiNX를 다시 로드했습니다.