คำเตือน: คำถามนี้ไม่ได้ที่จะแก้ปัญหาของการเปลี่ยนรหัสผ่านรูทในขณะที่ SELinux เปิดใช้งานอยู่เพราะมีคำแนะนำมากมายที่จะแก้ปัญหานี้ นี่เป็นวิธีที่ SELinux ทำภายในองค์กร
ฉันเป็นผู้ใช้ล่าสุดของ SELinux แต่เมื่อเร็ว ๆ นี้ฉันได้ติดต่อกับมันมากขึ้น มีบางครั้งที่มีคนถามฉันว่าฉันสามารถรีเซ็ตรหัสผ่านรูทได้อย่างไรในกรณีที่ลืม
ดังนั้นฉันจึงบูท CentOS ของฉันแก้ไขรายการด้วงให้เป็นเช่นนั้น
linux16 <kernel_location> root=/dev/mapper/centos-root rw init=/bin/bash
ฉันวิ่งpasswd
แล้วก็วิ่งsync
และบังคับให้รีบูต หลังจากรีบูตการเข้าสู่ระบบด้วยรหัสผ่านใหม่ถูกปฏิเสธเช่นเดียวกับของเก่าแน่นอน
รีบูทอีกครั้งและส่งผ่านเคอร์เนลพารามิเตอร์เพื่อปิดการใช้งาน SELinux ( selinux=0
) พยายามลงชื่อเข้าใช้ด้วยรหัสผ่านใหม่และใช้งานได้ หลังจากนั้นฉันบังคับ fs auto relabel (ผ่านไฟล์.autorelabel
) และด้วย SELinux active ตอนนี้มันเป็นไปได้ที่จะเข้าสู่ระบบ
คำถามของฉันคือ: ทำไมจะเกิดขึ้น? ทำไมการติดฉลากซ้ำจึงมีผลต่อการล็อกอินเมื่อมีการเปลี่ยนรหัสผ่านไม่ใช่ของผู้ใช้หรือวัตถุ?
ขอขอบคุณสำหรับความสนใจของคุณ.
TL; DR: การรีเซ็ตรหัสผ่านรูทปกติไม่สามารถใช้งานได้ใน SELinux ทำไม?
แก้ไข: สิ่งนี้ได้รับการทดสอบบนเครื่องเสมือนที่รัน CentOS7 ด้วย KVM ในฐานะไฮเปอร์ไวเซอร์