मेरे पास SELinux के साथ बहुत अजीब चीजें हैं।
मेरी पोस्ट थोड़ी अव्यवस्थित हो सकती है, क्योंकि मैं पूरी तरह से समझ नहीं पा रहा हूं कि क्या हो रहा है।
सभी कहानी से पहले, मेरे पास अच्छे और बहुत स्थिर लिनक्स इंस्टॉलेशन थे:
CentOS 5.5
uname -a:
Linux andreys-comp 2.6.18-194.8.1.el5xen #1 SMP
Thu Jul 1 19:41:05 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
getenforce
echo $?
0
लेकिन एक दिन (कल) मैंने करने का फैसला किया yum update
और समानांतर:
cvs -d:pserver:anonymous@SELinux.cvs.sourceforge.net:/cvsroot/SELinux -z3 co nsa
(cvs ने सभी फाइलों को / SELinux डायरेक्टरी में डाउनलोड किया जो खुद बनाई गई)
डाउनलोड करने के बाद मैंने README को पढ़ा जहां यह कहता है कि पूरी तरह से संकलित SELinux स्थापित करने के लिए मुझे इसकी आवश्यकता है:
make menuconfig
make
make install
मैंने केवल बनाया (!), लेकिन इसके बाद सीधे मेरा कंप्यूटर पागल हो गया।
मुझे नहीं पता कि सिस्टम अपडेट, या SELinux संकलन या दोनों के कारण यह सब है, लेकिन फ़ायरफ़ॉक्स ने प्रदर्शन पृष्ठों को बंद कर दिया और जब मैंने हाल ही में स्थापित सिस्टम-कॉन्फ़िगरेशन-SELinux को चलाने का प्रयास किया, तो मुझे यह मिला:
/usr/lib64/Python2.4/site-packages/SELinux/_SELinux.so: undefined symbol: SELinux_check_securetty_context
और नहीं चला।
उसके बाद मैं प्रणाली रिबूट, सिस्टम को मैं गिरी दहशत और जैसे कुछ बात मिलता दौरान: "SELinux नीति लागू करने में विफल" (मुझे याद नहीं वास्तव में, संदेश स्क्रीन के लिए पर्याप्त समय पर रहने नहीं है क्योंकि कंप्यूटर नीचे जाना)
तो मैंने जो किया, वह LiveCD से अक्षम SELinux / etc / SELinux / config फाइल में चलाने के लिए है, लेकिन (!) (यहाँ परिणति क्षण आता है) जब मैं LiveCD फ़ाइल सिस्टम के / ls पर चलाता हूं, तो मैं देखता हूं:
[root@livecd /]# ls -la
total 180
drwxr-xr-x 4 root root 0 Aug 9 18:23 SELinux
लेकिन यह वर्चुअल फाइलसिस्टम है! मुझे याद है कि cvs ने सभी स्रोत को डाउनलोड किया था /SELinux
।
यह इस निर्देशिका का संदर्भ है: system_u:object_r:security_t
इसके अलावा, /SELinux
निर्देशिका में इसके अंदर फाइलें भी थीं। उनमें से एक अशक्त चरित्र उपकरण था।
क्या यह LiveCD फाइल सिस्टम की नियमित निर्देशिका है? या यह मेरी हाल ही cvs
में निर्देशिका द्वारा कुछ रहस्यमय भंडारण में बनाई गई है और insidably LiveCD की फाइल सिस्टम के लिए मुहिम शुरू की है?
उसके बाद मैंने अपनी हार्ड डिस्क की रूट फाइल सिस्टम को माउंट किया, मैंने ls
अपनी SELinux डायरेक्टरी को पाया और वहाँ पूरी तरह से सक्षम रहा:
[root@livecd VolGroup00-LogVol01]# ls -la
total 240
drwxr-xr-x 2 root root 4096 Jun 5 07:01 SELinux
लेकिन (!) यह निर्देशिका अब अंदर खाली थी! यह निर्देशिका का संदर्भ है:system_u:object_r:file_t
यह माउंटिंग है जो LiveCD मोड में थे:
/dev/mapper/live-rw on / type ext3 (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/hdc on /mnt/live type iso9660 (ro)
/dev/sda2 on /mnt/disc/sda2 type ext3 (ro)
/dev/sda6 on /mnt/disc/sda6 type vfat (ro,uid=500)
/dev/mapper/VolGroup00-LogVol01 on /mnt/lvm/VolGroup00-LogVol01 type ext3 (rw)
/dev/mapper/VolGroup00-LogVol00 on /mnt/lvm/VolGroup00-LogVol00 type ext3 (ro)
इस सब के बाद मैंने उचित फाइल में SELinux को निष्क्रिय कर दिया:
SELinux=disabled
SELinuxTYPE=targeted
SETLOCALDEFS=0
और मैंने अपना कंप्यूटर फिर से चालू कर लिया है। बूट करने के बाद, मैं फिर से रूट करता हूं और देखता हूं कि फिर से मेरे पास SELinux डायरेक्टरी है, लेकिन यह फिर से खाली है!
[root@andreys-comp SELinux]# pwd
/SELinux
[root@andreys-comp SELinux]# ls
[root@andreys-comp SELinux]#
इसमें से अधिक। जब मैंने हार्ड डिस्क से बूट किया, तो मैंने squashfs.img
लाइवसीडी और उस पर माउंट किया ext3fs.img
, जिसमें सभी रूट फाइल सिस्टम शामिल हैं, और यह वह है जो मैं देखता हूं:
[root@andreys-comp isotemp2]# mount
/isotemp/LiveOS/ext3fs.img on /isotemp2 type ext3 (ro,loop=/dev/loop1)
[root@andreys-comp isotemp2]# ls -l
total 180
drwxr-xr-x 2 root root 4096 Oct 2 2009 SELinux
[root@andreys-comp isotemp2]# cd SELinux/
[root@andreys-comp SELinux]# ls
[root@andreys-comp SELinux]#
यह भी खाली है! सभी SELinux कोड कहाँ हैं?
अब, मैं SELinux फ़ोल्डरों के बारे में बहुत कुछ बता सकता हूं, लेकिन SELinux के साथ मेरी सामान्य परेशानी के बारे में सवाल मेरे लिए कम महत्वपूर्ण नहीं है।
इसलिए, यदि मैं SELinux को सक्षम करता हूं तो मुझे कर्नेल पैनिक मिलता है (भले ही मैं रनलेवल 1 में हूं)।
LiveCD के साथ बूट करने और इसे अक्षम करने के बाद, सभी फिर से काम करते हैं।
इसलिए मेरे दो सवाल हैं:
सभी संकलित SELinux ऑब्जेक्ट्स कहाँ हैं?
मैं अपने कंप्यूटर की दुनिया को कैसे सद्भाव और शांति प्रदान करूं?