He estado luchando con este durante un tiempo y parece que ha habido una regresión en CentOS 6 en lo que respecta a la anaconda ignorando la selinux --disabled
directiva. Esto parece haber aparecido por primera vez en RHEL 4.8 , y luego reapareció en RHEL 5.6 .
Ahora, con las versiones anteriores, simplemente agregaría la declaración sed a su %post
directiva para deshabilitarla.
sed -i -e 's/\(^SELINUX=\).*$/\1permissive/' /etc/selinux/config
El problema con el que me estoy encontrando es que lo nuevo en RHEL / CentOS 6 es el hecho de que están configurando los atributos del sistema de archivos de forma predeterminada, por lo que ahora tiene que ir y borrarlos.
Intenté ejecutar el siguiente comando para quitar esos atributos en mi %post
sección, pero no tiene ningún efecto.
find . -exec setfattr -x security.selinux {} \;
Mi archivo kickstart está abajo en caso de que lo encuentre útil:
#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
estrofa a la que anexas/tmp/nic-include
y luego la golpeas en la siguiente línea.Respuestas:
El instalador de CentOS 6 carga las políticas en modo permisivo de forma predeterminada (lo que confirmé ejecutando dmesg durante la instalación). Eso significa que con el paso posterior a la instalación, SELinux ya está activo. Mientras se esté ejecutando, no parece que pueda eliminar los atributos.
Tendrá que pasar lo siguiente en algún lugar antes del inicio de la instalación (justo al final del núcleo, la línea del cargador de arranque):
Entonces algo como esto:
Esto es lo que sucede cuando intenta eliminar los atributos mientras está en modo permisivo (perdone el formato, SF parece ser infeliz):
Con selinux deshabilitado de grub en el momento del arranque:
Basado en esto y en este informe de error , esto probablemente significa que no podrá eliminar los atributos en la instalación posterior. Entonces, como lo describí, deberá deshabilitar selinux antes de iniciar la instalación.
(o puedes dejarlo solo y aprender a vivir con él. :)).
fuente
La 'causa raíz' del problema es que Anaconda implementa los atributos selinux durante el proceso kickstart (de modo que cualquier desactivación 'posterior a la instalación' es demasiado tarde).
He colocado los métodos de desactivación en los archivos de configuración del host (en realidad, siempre estuvieron allí):
PERO, también agregó la cadena 'selinux = 0' al archivo de arranque PXE:
¡Después de reconstruir el sistema, todas las anotaciones de 'punto' desaparecieron!
fuente