Saya telah berjuang dengan yang satu ini sebentar dan tampaknya telah terjadi regresi dalam CentOS 6 sejauh anaconda mengabaikan selinux --disabled
arahan. Ini tampaknya pertama kali muncul di RHEL 4.8 , dan kemudian muncul kembali di RHEL 5.6 .
Sekarang dengan rilis sebelumnya Anda hanya akan menambahkan pernyataan sed ke %post
arahan Anda untuk menonaktifkannya.
sed -i -e 's/\(^SELINUX=\).*$/\1permissive/' /etc/selinux/config
Masalah yang saya hadapi adalah bahwa yang baru di RHEL / CentOS 6 adalah fakta bahwa mereka mengatur atribut sistem file secara default sehingga Anda sekarang harus pergi dan menghapusnya.
Saya mencoba menjalankan perintah berikut untuk menghapus atribut-atribut di %post
bagian saya , tetapi tidak memiliki efek apa pun.
find . -exec setfattr -x security.selinux {} \;
File kickstart saya ada di bawah jika Anda merasa terbantu:
#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/
%pre
bait Anda, Anda menambahkan/tmp/nic-include
dan kemudian mengatasinya di baris berikutnya.Jawaban:
Pemasang CentOS 6 memuat kebijakan dalam mode permisif secara default (yang saya konfirmasikan dengan menjalankan dmesg selama instalasi). Yang dimaksud dengan langkah pemasangan pos, SELinux sudah aktif. Selama ini berjalan, sepertinya Anda tidak bisa menghapus atribut.
Anda harus melewati tempat berikut sebelum memulai instalasi (tepat di akhir kernel, baris boot loader):
Jadi sesuatu seperti ini:
Inilah yang terjadi ketika Anda mencoba untuk menghapus atribut saat dalam mode permisif (maafkan pemformatan, SF tampaknya tidak bahagia):
Dengan selinux dinonaktifkan dari grub saat boot:
Berdasarkan ini dan juga laporan bug ini , ini mungkin berarti Anda tidak akan dapat menghapus atribut dalam pemasangan pos. Jadi seperti yang saya jelaskan, Anda harus menonaktifkan selinux sebelum mem-boot instalasi.
(atau Anda bisa membiarkannya dan belajar untuk hidup dengannya. :)).
sumber
'Penyebab utama' dari masalah ini, adalah bahwa Anaconda mengimplementasikan atribut selinux selama proses kickstart (sehingga penonaktifan 'pasca pemasangan', sudah terlambat).
Saya telah menempatkan metode penonaktifan di file konfigurasi host (sebenarnya, mereka selalu ada di sana):
TETAPI, juga menambahkan string 'selinux = 0' ke file boot PXE:
Setelah membangun kembali sistem, semua notasi 'titik' hilang !!!
sumber