सवाल Centos 6 किकस्टार्ट 'selinux - अक्षम' को अनदेखा कर रहा है


मैं थोड़ी देर के लिए इस के साथ लड़ रहा हूं और ऐसा लगता है कि सेंटोस 6 में एनाकोंडा को अनदेखा करने के लिए एक रिग्रेशन रहा है selinux --disabled निर्देश। ऐसा लगता है कि पहले दिखाई दिया था आरएचईएल 4.8, और फिर फिर से दिखाई दिया आरएचईएल 5.6

अब पिछले रिलीज के साथ आप बस अपने लिए sed स्टेटमेंट जोड़ देंगे %post इसे अक्षम करने के लिए निर्देश।

sed -i -e 's/\(^SELINUX=\).*$/\1permissive/' /etc/selinux/config

जिस समस्या में मैं दौड़ रहा हूं वह यह है कि आरएचईएल / सेंटोस 6 में नया यह तथ्य है कि वे डिफ़ॉल्ट रूप से फाइल सिस्टम विशेषताओं को सेट कर रहे हैं, इसलिए अब आपको उनको जाना और साफ़ करना होगा।

मैंने उन गुणों को पट्टी करने के लिए निम्न आदेश चलाने का प्रयास किया %post खंड, लेकिन इसका कोई प्रभाव नहीं पड़ता है।

find . -exec setfattr -x security.selinux {} \;

यदि आपको यह उपयोगी लगता है तो मेरी किकस्टार्ट फ़ाइल नीचे दी गई है:

#version=RHEL6
install
url --url=http://ny-man01.ds.stackexchange.com/centos/6/os/x86_64
lang en_US.UTF-8
keyboard us
%include /tmp/nic-include
rootpw  --iscrypted <mmm no you don't even get the encrypted version>
firewall --service=ssh,ntp,snmp
authconfig --enableshadow --passalgo=sha512 --enablefingerprint --enablekrb5
selinux --disabled
timezone --utc Etc/UTC
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --initlabel --drives=sda

part /boot --fstype=ext4 --size=500
part pv.M3dTcp-jomG-l0xc-Zl3I-wqR1-Gcwz-14jidB --grow --size=1
volgroup vg_test --pesize=4096 pv.M3dTcp-jomG-l0xc-Zl3I-wqR1-Gcwz-14jidB
logvol / --fstype=ext4 --name=lv_root --vgname=vg_test --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=vg_test --grow --size=1024 --maxsize=6016

services --enabled ntpd,snmpd,puppet

reboot

repo --name="CentOS"  --baseurl=http://ny-man01.ds.stackexchange.com/centos/6/os/x86_64/ --                                                                                                                                                                                                                                  cost=100
repo --name="EPEL6" --baseurl=http://ny-man01.ds.stackexchange.com/epel/6/x86_64/
repo --name="SEI" --baseurl=http://ny-man01.ds.stackexchange.com/sei/

%packages
@base
@core
@hardware-monitoring
@perl-runtime
@server-policy
@system-admin-tools
pam_krb5
sgpio
perl-DBD-SQLite
epel-release-6-5
net-snmp
ntp
mercurial
puppet

%pre
echo "# `grep /proc/net/dev eth| cut -d: -f1 | cut -d' ' -f3` " >>/tmp/nic-include
echo "# auto generated nic setup" > /tmp/nic-include
for nic in `grep eth /proc/net/dev| cut -d: -f1 | cut -d' ' -f3`
do
        if [ "$nic" = "eth0" ]
        then
                echo "network --device $nic --bootproto dhcp " >> /tmp/nic-include
        else
                echo "network --device $nic --onboot no --bootproto dhcp" >> /tmp/nic-inclu                                                                                                                                                                                                                                  de
        fi
done


%post --log /root/ks-post.log
#sed -i -e 's/\(^SELINUX=\).*$/\1disabled/' /etc/selinux/config
#find / -exec setfattr -x security.selinux {} \;
wget -O- http://10.7.0.50/kickstart/generic-configs/get_files.sh | /bin/bash
cp /tmp/nic-include /root/

8
2017-12-13 22:53


मूल


मुझे EL5.x या EL6 में मेरे किकस्टार्ट से सेलिनक्स को अक्षम करने में कोई समस्या नहीं है। क्या यह मुद्दा है कि आपके पास नए इंस्टॉलेशन के बाद फाइल सिस्टम समस्याएं हैं? - ewwhite
नहीं, किकस्टार्ट स्थापित करने के बाद SELinux अभी भी 'लागू करने' पर सेट है और फ़ाइल सिस्टम विशेषताएँ अभी भी सेट हैं। - Zypher
@ ज़ीफ़र, एफवाईआई: आपके में %pre Stanza आप में शामिल हैं /tmp/nic-include और फिर अगली पंक्ति पर इसे clobbering। - Belmin Fernandez
@ बीमिंगमेल-बिन ओह हाँ, बस डीबगिंग कोड मैं बाहर निकलना भूल गया। - Zypher


जवाब:


CentOS 6 इंस्टॉलर डिफ़ॉल्ट रूप से अनुमोदित मोड में नीतियों को लोड करता है (जिसे मैंने इंस्टॉलेशन के दौरान dmesg चलाकर पुष्टि की)। इसका मतलब पोस्ट स्थापना चरण से है, SELinux पहले से ही सक्रिय है। जब तक यह चल रहा है, ऐसा लगता है कि आप गुणों को हटा सकते हैं।

इंस्टॉलेशन की शुरुआत से पहले आपको निम्न जगह को पास करना होगा (ठीक है कर्नेल बूट लोडर लाइन के अंत में):

selinux=0

तो ऐसा कुछ है:

kernel /boot/vmlinuz-2.4.20-XXXXXXXXX ro root=/dev/hda1 nousb selinux=0

यहां होता है जब आप अनुमोदित मोड में गुणों को हटाने का प्रयास करते हैं (प्रारूपण को क्षमा करें, एसएफ दुखी दिखता है):

[root@centos6dev test]# find . -exec setfattr -x security.selinux {} \;
setfattr: .: Permission denied
setfattr: ./test2: Permission denied
setfattr: ./test3: Permission denied
setfattr: ./test: Permission denied

बूट समय पर selinux grub से अक्षम के साथ:

[root@centos6dev test]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 test
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 test2
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 test3
[root@centos6dev test]# find . -exec setfattr -x security.selinux {} \;
[root@centos6dev test]# ls -la
total 8
drwxr-xr-x  2 root root 4096 Dec 13 22:27 .
dr-xr-x---. 4 root root 4096 Dec 13 22:27 ..
-rw-r--r--  1 root root    0 Dec 13 22:27 test
-rw-r--r--  1 root root    0 Dec 13 22:27 test2
-rw-r--r--  1 root root    0 Dec 13 22:27 test3
[root@centos6dev test]# ls -Z
-rw-r--r-- root root ?                                test
-rw-r--r-- root root ?                                test2
-rw-r--r-- root root ?                                test3

इस बग के साथ-साथ इस बग के आधार पर रिपोर्ट, इसका शायद मतलब है कि आप पोस्ट इंस्टॉल में विशेषताओं को हटाने में सक्षम नहीं होंगे। इसलिए जैसा कि मैंने रेखांकित किया है, आपको स्थापना को बूट करने से पहले selinux को अक्षम करने की आवश्यकता होगी।

(या आप इसे अकेला छोड़ सकते हैं और इसके साथ रहना सीख सकते हैं। :))।


6
2017-12-14 04:14



यह मेरी पोस्ट से sed लाइन के साथ संयुक्त एक आकर्षण की तरह काम किया! - Zypher
सिर्फ अपने उत्सुकता के लिए उत्सुक है: SELinux द्वारा छोड़े गए विस्तारित गुणों को हटाने की आवश्यकता क्यों है? - Rilindo
मैंने मुद्दों में भाग लिया है कि किसी भी कारण से विस्तारित विशेषताओं + सेलिनक्स का मतलब है कि सेवाएं फाइलें नहीं पढ़ सकती हैं - खासकर जब मिश्रण में एसीएल और एनएफएस को जोड़ते हैं। विस्तारित विशेषताओं को मार डालो और समस्या दूर हो जाती है - Zypher


इस मुद्दे का 'मूल कारण' यह है कि एनाकोंडा किकस्टार्ट प्रक्रिया के दौरान selinux विशेषताओं को लागू करता है (जैसे कि 'पोस्ट-इंस्टॉल' अक्षम करने में बहुत देर हो चुकी है)।

मैंने होस्ट कॉन्फ़िगरेशन फ़ाइलों में अक्षम करने के तरीकों को रखा है (वास्तव में, वे हमेशा वहां थे):

फ़ायरवॉल - अक्षम
selinux - अक्षम

लेकिन, PXE बूट फ़ाइल में 'selinux = 0' स्ट्रिंग भी जोड़ा:

/tftpboot/pxelinux.cfg> बिल्ली 01-00-24-4f-ab-1e-84

डिफ़ॉल्ट लिनक्स
लेबल लिनक्स
  कर्नेल vmlinuz-rhel-6.4-x86_64
  load_ramdisk = 1 initrd = initrd.img-rhel-6.4-x86_64 नेटवर्क संलग्न करें SELinux = 0 ksdevice = eth0 ks = nfs: nolock, rsize = 1480, wsize = 1480: buildserver: /kickstart/host-configs/myserver-ks.cfg

सिस्टम के पुनर्निर्माण के बाद, सभी 'डॉट' नोटेशन चले गए !!!


2
2017-11-28 01:14