डिस्क्लेमर: यह सवाल रूट पासवर्ड बदलने की समस्या को हल करने के लिए नहीं है, जबकि SELinux सक्रिय है क्योंकि इसे हल करने के लिए बहुत सारे गाइड हैं। यह अधिक है कि SELinux आंतरिक रूप से कैसे करता है।
मैं हाल ही में SELinux का उपयोगकर्ता हूं, लेकिन हाल ही में मैं इसके संपर्क में अधिक रहा हूं। एक पल था जब किसी ने मुझसे पूछा कि मैं इसे भूलने के मामले में रूट पासवर्ड कैसे रीसेट कर सकता हूं।
इसलिए मैंने अपने CentOS को बूट किया, ग्रब प्रविष्टि को कुछ इस तरह से संपादित किया
linux16 <kernel_location> root=/dev/mapper/centos-root rw init=/bin/bash
मैं भाग गया passwd
और बाद में भाग गया sync
और रिबूट को मजबूर किया। रिबूट के बाद, नए पासवर्ड के साथ लॉगिंग को अस्वीकार कर दिया गया था और साथ ही पुराने के साथ।
फिर से रिबूट किया और कर्नेल को SELinux ( selinux=0
) को निष्क्रिय करने के लिए पैरामीटर पास किया । नए पासवर्ड के साथ लॉगिंग की कोशिश की और यह काम कर गया। बाद में मैंने एक fs ऑटो रिलेबेल (फ़ाइल के माध्यम से .autorelabel
) को मजबूर किया और SELinux सक्रिय के साथ अब लॉग इन करना संभव हो गया।
मेरा सवाल है: ऐसा क्यों होता है? जब उपयोगकर्ताओं और वस्तुओं का नहीं, केवल पासवर्ड का परिवर्तन हुआ था, तो रीब्लिंग लॉग को क्यों प्रभावित करता है?
ध्यान देने के लिए धन्यवाद।
TL; DR: सामान्य रूट पासवर्ड रीसेट SELinux में काम नहीं करता है। क्यों?
संपादित करें: यह एक आभासी मशीन पर परीक्षण किया गया था जो केवीएम के साथ सेंट्रो 7 के रूप में चल रहा था।