semanage Trình tạo lệnh
Tạo các lệnh semanage để quản lý việc ánh xạ chính sách SELinux (fcontext, login, user, port, boolean)
Bắt đầu với semanage
## Semanage là gì?
`semanage` dùng để quản lý các bản đồ chính sách SELinux – những nhãn mô tả cho hệ điều hành biết rằng một tiến trình, tập tin, cổng hoặc người dùng đăng nhập được *phép* thực hiện những gì. Nó không tự đổi chế độ thực thi/chặn (việc đó do `setenforce` thực hiện); thay vào đó, nó cấu hình các bản đồ lưu trữ mà chính sách SELinux sử dụng.
## Cách sử dụng
1. **Chọn đối tượng**: `fcontext` (nhãn tập tin), `login` (bản đồ người dùng Linux → người dùng SELinux), `user`, `port`, hoặc `boolean`. 2. **Chọn hành động**: `add` (`-a`), `modify` (`-m`), `delete` (`-d`), hoặc `list` (`-l`). 3. **Đặt loại SELinux** (`-t`) và **giá trị** (mẫu regex đường dẫn, cổng, người dùng, v.v.). 4. **Áp dụng bối cảnh tập tin**: Đối với các thay đổi ở `fcontext`, hãy chạy `restorecon` sau đó để các tập tin hiện có được gán nhãn lại. 5. **Sao chép & Chạy**: Đặt phần mở đầu bằng `sudo`.
Đối tượng, Thao tác & Tùy chọn
### Các mối tương ứng ngữ cảnh tệp `fcontext` Liên kết một mẫu regex đường dẫn với một loại SELinux. Sau khi thêm hoặc chỉnh sửa, hãy chạy `restorecon -Rv /path` để đặt lại nhãn cho các tệp hiện có: `semanage fcontext -a -t httpd_sys_content_t '/web(/.*)?'`.
### Mối tương ứng người dùng Linux → người dùng SELinux `login` Định tuyến một tài khoản đăng nhập Linux (hoặc `__default__`) tới một người dùng SELinux, ví dụ: `semanage login -a -s user_u john`.
### Người dùng SELinux `user` Tạo hoặc chỉnh sửa các người dùng SELinux cùng các vai trò mà họ có thể đảm nhận.
### Các mối tương ứng cổng → loại `port` Đặt nhãn cho một cổng mạng để một dịch vụ bị giới hạn có thể gắn kết với nó: `semanage port -a -t http_port_t -p tcp 8080`.
### Các giá trị boolean trong chính sách SELinux `boolean` Bật hoặc tắt một giá trị boolean có tên nhằm thay đổi hành vi của chính sách (`semanage boolean -m --on httpd_can_network_connect`).
### Các thao tác `-a` / `-m` / `-d` / `-l` Thêm một mối tương ứng mới, chỉnh sửa một mối tương ứng hiện
▶SELinux context là gì và tại sao nó lại quan trọng?
▶Tôi đã thêm một quy tắc fcontext nhưng httpd vẫn không thể đọc các tập tin — tại sao?
▶Làm thế nào để cho phép một dịch vụ lắng nghe trên cổng không tiêu chuẩn?
Nếu công cụ này đã giúp ích cho bạn, hãy nghĩ đến việc mua một cốc cà phê cho tôi.
Hãy mua cho tôi một cốc cà phê nhé.