SELinux에는 2가지 Mode가 있습니다. Permissive와 Enforcing 모드에 지금부터 알아보도록 합시다.
SELinux는 무엇일까?
[android] SELinux 맛보기(feat. DAC vs MAC)에서 설명드렸듯이, SELinux는 Linux에서 MAC을 적용한 시스템입니다. DAC와 MAC에 대해서 궁금하시면 이전 글을 참고해 주시면 좋을 것 같습니다.
[android] SELinux 맛보기(feat. DAC vs MAC)
Android에서 사용하는 SELinux에 대해서 알아보려고 합니다. 실행되는 프로세스가 정상적으로 동작을 안 하는 경우, 100% SELinux 문제라고 볼 수 있습니다. 물론 해당 프로세스를 실행시키는 코드 문제
77monkey.tistory.com
SELinux Mode
AOSP에서의 SELinux는 2가지 Mode가 있습니다.
- Permissive mode: SELinux 보안 정책이 적용되지 않고 logging만 합니다.
- Enforcing mode: SELinux 보안 정책이 적용되고 logging이 됩니다. kernel에서 SELinux에 의해서 접근이 허용되지 않으면 EPERM 오류가 return 됩니다.
Permissive mode는 보통 test를 할 때 사용됩니다. 특정 기능을 구현하거나 issue가 발생했을 때 해당 문제가 SELinux 문제인지 여부를 확인할 때 사용됩니다. 예를 들면 어떤 issue가 발생했는데 Enforcing mode에서 Permissive mode로 변경했을 때에는 재현이 되지 않는다면 100%로 SELinux 문제입니다. 이럴 경우에 Permissive mode로 test를 합니다.
Enforcing mode는 상용코드에서 무조건 설정되어야 하는 값입니다. Perissive mode로 제품을 설정할 경우에 VTS/CTS test에서 fail하게 되어서 제품을 사용화할 수 없습니다. 그렇기 때문에 Enforcing mode 설정은 중요합니다.
SELinux Mode 확인 명령어
부팅을 하게 되면 SELinux Mode 확인하는 명령어를 통해서 확인할 수 있습니다.
adb shell getenforce
만약 Permissive mode일 경우에 명령어는 Permissive를 출력하고, Enforcing mode일 경우에는 Enforcing을 출력합니다.
SELinux Mode 설정 명령어
SELinux Mode를 확인했다면, 이제 설정을 변경하는 명령어를 알아보도록 하겠습니다. 위에서 말씀드린 것처럼 Enforcing mode에서 Permissive mode로 변경하여 test를 하거나 동작을 확인할 수 있습니다. 이 때 나오는 log를 통해서 SELinux 정책을 추가하여 Enforcing mode에서도 동작하도록 할 수 있습니다
adb shell setenforce 0
adb shell getenforce
Permissive
위와 같은 경우 setenforce를 0으로 설정하여 Permissive로 설정하였습니다. 그리고 위에서 배운 getenforce을 통해서 어떤 Mode인지 확인합니다. 이번에는 Enforcing Mode를 확인해 보겠습니다 .
adb shell setenforce 1
adb shell getenforce
Enforcing
이번에는 setenforce를 1로 설ㅈ어하여 Enforcing으로 설정하였습니다. 그리고 getenforce를 통해서 확인해 보면 Enforcing으로 된 것을 확인할 수 있습니다.
SELinux Mode 공부 끝!
SELinux의 Mode에는 2가지 Mode가 있고, 각 Mode에 따라서 Permissive와 Enforcing mode가 있다는 것을 알았습니다. 실제로 제가 개발을 하면서 배운 것들에 대해서 작성하여서 큰 도움이 될 것으로 생각됩니다. SELinux Mode는 이 포스팅 하나로 끝내시길 바라며 끝맺음을 하겠습니다.
'개발 > android' 카테고리의 다른 글
| ACK(android common kernels) git download 방법 (0) | 2025.07.08 |
|---|---|
| [android] SELinux 맛보기(feat. DAC vs MAC) (0) | 2025.07.04 |
| [기타] fastboot 설치부터 명령어까지 (0) | 2023.09.10 |