semanage 명령어 생성기
SELinux 정책 매핑(fcontext, login, user, port, boolean)을 관리하기 위한 semanage 명령어 생성
semanage 시작하기
## semanage란 무엇인가요?
`semanage`는 SELinux 정책 매핑을 관리합니다. 이 매핑들은 프로세스, 파일, 포트, 로그인 사용자가 *무엇을 할 수 있는지* 커널에 알려주는 레이블입니다. 이 도구는 강제 모드/허용 모드 자체를 전환하지는 않습니다(그 작업은 `setenforce`에서 수행됨). 대신 SELinux 정책이 사용하는 영구적인 매핑들을 설정할 뿐입니다.
## 사용 방법
1. **대상 선택**: `fcontext`(파일 레이블), `login`(Linux 사용자 → SELinux 사용자 매핑), `user`, `port`, 또는 `boolean`. 2. **동작 선택**: `add`(`-a`), `modify`(`-m`), `delete`(`-d`), 또는 `list`(`-l`). 3. **SELinux 타입**`-t`과 **값**(패스 정규식, 포트, 사용자 등)을 설정합니다. 4. **파일 컨텍스트 적용**: `fcontext` 변경이 있을 경우, 기존 파일들의 레이블을 재지정하려면 그 후에 `restorecon`을 실행합니다. 5. **복사 및 실행**: `sudo`로 시작하여 명령을 실행합니다.
오브젝트, 액션 및 옵션
### `fcontext` 파일 컨텍스트 매핑 경로 정규식을 SELinux 타입에 바인딩합니다. 추가하거나 수정한 후에는 기존 파일들의 레이블을 변경하기 위해 `restorecon -Rv /path`을 실행하세요: `semanage fcontext -a -t httpd_sys_content_t '/web(/.*)?'`.
### `login` Linux 사용자 → SELinux 사용자 매핑 Linux 로그인 계정(또는 `__default__`)을 SELinux 사용자에 매핑합니다. 예: `semanage login -a -s user_u john`.
### `user` SELinux 사용자 SELinux 사용자와 그들이 가질 수 있는 롤을 생성하거나 수정합니다.
### `port` 포트 → 타입 매핑 제한된 서비스가 해당 포트에 바인딩될 수 있도록 네트워크 포트에 레이블을 지정합니다: `semanage port -a -t http_port_t -p tcp 8080`.
### `boolean` 정책 부울 값 정책 동작을 변경하기 위해 지정된 부울 값의 켜기/끄기를 전환합니다(`semanage boolean -m --on httpd_can_network_connect`).
### 작업 `-a` / `-m` / `-d` / `-l` 새로운 매핑을 추가하거나, 기존 매핑을 수정하거나, 매핑을 삭제하거나, 현재의 매핑 목록을 확인할 수 있습니다.
▶SELinux 컨텍스트란 무엇이며 왜 중요한가요?
▶fcontext 규칙을 추가했는데도 httpd는 여전히 파일을 읽을 수 없습니다 — 왜인가요?
▶비표준 포트에서 서비스가 수신할 수 있도록 하려면 어떻게 해야 하나요?
이 도구가 당신에게 도움이 되었다면, 저에게 커피 한 잔 사주세요.
제게 커피 한 잔 사주세요.