Je me bats avec celui-ci depuis un moment et il semble qu'il y ait eu une régression dans CentOS 6 jusqu'à anaconda ignorant la selinux --disabled
directive. Cela semble être apparu pour la première fois dans RHEL 4.8 , puis réapparu dans RHEL 5.6 .
Maintenant, avec les versions précédentes, vous ajouteriez simplement l'instruction sed à votre %post
directive pour la désactiver.
sed -i -e 's/\(^SELINUX=\).*$/\1permissive/' /etc/selinux/config
Le problème que je rencontre est que la nouveauté de RHEL / CentOS 6 est le fait qu'ils définissent les attributs du système de fichiers par défaut, vous devez donc aller les effacer.
J'ai essayé d'exécuter la commande suivante pour supprimer ces attributs dans ma %post
section, mais cela n'a aucun effet.
find . -exec setfattr -x security.selinux {} \;
Mon fichier kickstart est ci-dessous au cas où vous le trouveriez utile:
#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
strophe, vous ajoutez,/tmp/nic-include
puis le tapotez sur la ligne suivante.Réponses:
Le programme d'installation de CentOS 6 charge les politiques en mode permissif par défaut (ce que j'ai confirmé en exécutant dmesg lors de l'installation). Cela signifie par l'étape de post-installation, SELinux est déjà actif. Tant qu'il est en cours d'exécution, il ne semble pas que vous puissiez supprimer les attributs.
Vous devrez passer ce qui suit quelque part avant le début de l'installation (juste à la fin du noyau la ligne du chargeur de démarrage):
Donc quelque chose comme ça:
Voici ce qui se passe lorsque vous essayez de supprimer les attributs en mode permissif (pardonnez le formatage, SF semble mécontent):
Avec selinux désactivé de grub au démarrage:
Sur la base de cela ainsi que de ce rapport de bogue , cela signifie probablement que vous ne pourrez pas supprimer les attributs lors de la post-installation. Donc, comme je l'ai indiqué, vous devrez désactiver selinux avant de démarrer l'installation.
(ou vous pouvez simplement le laisser tranquille et apprendre à vivre avec. :)).
la source
La «cause première» du problème est qu'Anaconda implémente les attributs selinux pendant le processus de démarrage (de sorte que toute désactivation «post-installation» est trop tardive).
J'ai placé les méthodes de désactivation dans les fichiers de configuration de l'hôte (en fait, elles étaient toujours là):
MAIS, a également ajouté la chaîne 'selinux = 0' au fichier de démarrage PXE:
Après avoir reconstruit le système, toutes les notations «point» ont disparu !!!
la source