Dalam beberapa tahun kebelakangan ini, dengan perkembangan pesat teknologi maklumat, isu keselamatan rangkaian telah menjadi semakin ketara. Untuk meningkatkan keselamatan sistem, pelbagai mekanisme keselamatan telah muncul. Antaranya, SELinux (Security-Enhanced Linux), sebagai modul sambungan keselamatan, digunakan secara meluas dalam sistem Linux, memberikan tahap pelaksanaan dasar keselamatan yang lebih tinggi untuk sistem.
Mengehadkan kebenaran dan tingkah laku program melalui akses yang dibenarkan adalah idea teras SELinux. Mekanisme kebenaran Linux tradisional (seperti bit kebenaran atau senarai kawalan akses) biasanya hanya boleh digunakan pada fail atau direktori, manakala SELinux membenarkan kawalan yang lebih halus ke atas setiap program (iaitu proses).
Dalam SELinux, kawalan kebenaran bergantung terutamanya pada mekanisme label (Label), yang memberikan setiap proses, fail atau sumber lain label unik untuk menunjukkan konteks keselamatannya. Label ini dipanggil SELinux Security Identifiers (pendek kata SID).
Elemen asas operasi SELinux termasuk subjek, objek dan operasi. Subjek mewakili subjek operasi, seperti proses, objek mewakili objek yang dikendalikan, seperti fail dan operasi merujuk kepada kelakuan operasi subjek pada objek. Dengan mengawal hubungan antara elemen ini, SELinux membolehkan akses selamat kepada sumber sistem.
Dasar SELinux ialah konsep yang sangat penting. Biasanya, pentadbir sistem menulis fail dasar SELinux yang disesuaikan berdasarkan keperluan sistem dan keperluan keselamatan untuk mencapai kawalan kebenaran yang terperinci.
Konteks SELinux melibatkan penandaan fail, proses dan sumber lain supaya SELinux boleh membuat keputusan akses keselamatan berdasarkan tanda ini. Di Linux, anda boleh menggunakan perintah ls -Z
untuk melihat maklumat konteks SELinux bagi fail dan perintah ps -eZ
untuk melihat maklumat konteks SELinux bagi sesuatu proses. . ls -Z
查看文件的SELinux上下文信息,通过ps -eZ
来查看进程的SELinux上下文信息。
通常,通过修改SELinux配置文件/etc/selinux/config
/etc/selinux/config
. Mod biasa termasuk "Penguatkuasaan" (penguatkuasaan), "Permisif" (pelaksanaan ringan) dan "Dilumpuhkan" (lumpuhkan SELinux), dsb. 3. Contoh kod SELinux Di bawah, kami menggunakan contoh kod mudah untuk menunjukkan aplikasi SELinux: import os # 获取当前进程的SELinux安全上下文 def get_selinux_context(pid): try: with open(f"/proc/{pid}/attr/current", "r") as f: return f.read().strip() except FileNotFoundError: return "Not found" # 获取当前进程的PID,并打印其SELinux上下文 pid = os.getpid() selinux_context = get_selinux_context(pid) print(f"PID {pid} 的SELinux上下文为:{selinux_context}")
Atas ialah kandungan terperinci Menganalisis SELinux: Prinsip dan Amalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!