Penafian: Pertanyaan ini bukan untuk menyelesaikan masalah mengubah kata sandi root saat SELinux aktif karena sudah ada banyak panduan untuk menyelesaikannya. Ini lebih dari bagaimana SELinux melakukan itu secara internal.
Saya pengguna SELinux baru-baru ini tetapi belakangan ini saya lebih banyak berhubungan dengannya. Ada saat ketika seseorang bertanya kepada saya bagaimana saya bisa mengatur ulang kata sandi root jika lupa.
Jadi saya mem-boot CentOS saya, mengedit entri grub ke sesuatu seperti
linux16 <kernel_location> root=/dev/mapper/centos-root rw init=/bin/bash
Saya berlari passwd
dan kemudian berlari sync
dan memaksa reboot. Setelah reboot, masuk dengan kata sandi baru ditolak juga seperti yang lama.
Reboot lagi dan memberikan kernel parameter untuk menonaktifkan SELinux ( selinux=0
). Mencoba masuk dengan kata sandi baru dan berhasil. Setelah itu saya memaksa relabel otomatis fs (melalui file .autorelabel
) dan dengan SELinux aktif sekarang mungkin untuk masuk.
Pertanyaan saya adalah: mengapa itu terjadi? Mengapa relabeling mempengaruhi login ketika hanya ada perubahan kata sandi dan bukan pengguna atau objek?
Terima kasih atas perhatian Anda.
TL; DR: Reset kata sandi root biasa tidak berfungsi di SELinux. Mengapa?
Sunting: Ini diuji pada mesin virtual yang menjalankan CentOS7 dengan KVM sebagai hypervisor.