SELinux は、Linux オペレーティング システムのセキュリティを強化するために使用される必須のアクセス制御セキュリティ テクノロジです。 SELinux では、ポリシーは、ターゲット ポリシー、MLS/MCS ポリシー、およびカスタム ポリシーの 3 つの主要なカテゴリに分類されます。これら 3 つのポリシー分類は、SELinux のセキュリティ機構において重要な役割を果たしますが、この記事では、これら 3 つのポリシー分類について、具体的なコード例を示しながら詳しく紹介します。
以下は、ターゲット ポリシーを使用してユーザーのファイルへのアクセスを制限する方法を示すサンプル コードです:
# 创建一个测试文件 touch testfile.txt # 为该文件设置安全上下文 chcon system_u:object_r:admin_home_t:s0 testfile.txt # 创建一个用户 useradd testuser # 给该用户分配角色和权限 semanage user -a -R "staff_r system_r" testuser # 切换用户至 testuser su testuser # 尝试读取文件 cat testfile.txt
次は、MLS ポリシーでファイルのセキュリティ レベルを設定する方法を示すサンプル コードです:
# 创建一个测试文件 touch testfile.txt # 为该文件设置安全等级 setfattr -n security.selinux -v "s0:c0,c1" testfile.txt # 查看文件的安全等级 getfattr -n security.selinux testfile.txt
以下は、単純な SELinux カスタム ポリシー モジュールの作成方法を示すサンプル コードです:
#include <selinux/selinux.h> #include <selinux/label.h> int main() { security_context_t scontext, tcontext; char *class = "file"; char *perms = "read"; security_id_t sid, tid; int rc = getfilecon("/etc/passwd", &scontext); if (rc < 0) { perror("getfilecon"); return 1; } rc = security_compute_user(scontext, &sid, &tcontext); if (rc < 0) { perror("security_compute_user"); return 1; } rc = security_compute_av(sid, class, perms, &tid); if (rc < 0) { perror("security_compute_av"); return 1; } printf("Source context: %s ", tcontext); printf("Target context: %s ", tcontext); return 0; }
上記の例を通じて、ターゲット ポリシー、マルチ ポリシー、およびカスタム ポリシーについて理解しました。 SELinux のポリシーが詳しく紹介されており、具体的なコード例も提供されています。これらのポリシー分類を理解して習得することで、ユーザーは SELinux のセキュリティ メカニズムをより深く理解し、実際のシステム セキュリティ制御に適切に適用できるようになります。
以上がSELinux の 3 つのポリシー分類の詳細な調査の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。