8 votos

CentOS 6 kickstart ignorando 'selinux --disabled'

He estado luchando con esto un poco y parece que ha habido una regresión en CentOS 6 como mucho como anaconda ignorando la selinux --disabled directiva. Parece que esta apareció por primera vez en RHEL 4.8y, a continuación, re-apareció en RHEL 5.6.

Ahora con las versiones anteriores que acaba de agregar la sed declaración a su %post directiva para desactivarlo.

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

El problema que me estoy quedando en es que de nuevo en RHEL/CentOS 6, es el hecho de que se determinan los atributos del sistema de archivos por defecto, de modo que ahora tienes que ir y borrar los.

He intentado correr el siguiente comando para la franja de esos atributos en mi %post sección, pero no tiene ningún efecto.

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

Mi archivo kickstart está por debajo en caso de encontrar que es ú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/

6voto

Rilindo Puntos 4225

El CentOS 6 carga el instalador de las políticas en modo permisivo por defecto (que me confirmó mediante la ejecución de dmesg durante la instalación). Que significa el post de instalación paso, SELinux ya está activo. Mientras se está ejecutando, no se parece en nada puede quitar los atributos.

Tendrá que pasar a la siguiente en algún lugar antes del inicio de la instalación (a la derecha al final de kernel el gestor de arranque de la línea):

selinux=0

Así que algo como esto:

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

Aquí es lo que sucede cuando se intenta quitar los atributos, mientras que en modo permisivo (perdonar el formato, SF parece ser infeliz):

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

Con selinux deshabilitado desde el grub en el arranque:

[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

Basado en esto tan bien como este bug informe, esto probablemente significa que usted no será capaz de eliminar los atributos en el post instalar. Así que como he comentado, tendrá que deshabilitar selinux antes de iniciar la instalación.

(o puede simplemente dejarlo solo y aprender a vivir con ella. :) ).

2voto

Yubby McFly Puntos 11

La "causa root" de la cuestión, es que la Anaconda implementa el selinux atributos durante el proceso de kickstart (de tal manera que cualquier 'post-install' deshabilitar, es demasiado tarde).

He puesto la desactivación de los métodos en los archivos de configuración de host (en realidad, siempre estaban allí):

firewall --disabled



selinux --disabled

PERO, también se añadió el 'selinux=0' cadena para el arranque PXE archivo:

/tftpboot/pxelinux.cfg> cat 01-00-24-4f-ab-1e-84

por defecto de linux
etiqueta de linux
 kernel vmlinuz-rhel-6.4-x86_64
 anexar load_ramdisk=1 initrd=initrd.img-rhel-6.4-x86_64 red de selinux=0 ksdevice=eth0 ks=nfs:nolock,rsize=1480,wsize=1480:buildserver:/kickstart/host-configs/miservidor-ks.cfg

Después de la reconstrucción del sistema, todos los de la 'dot' notaciones se habían ido !!!

1voto

SiRGt Puntos 43

He resuelto este problema en el archivo kickstart con esta configuración

selinux --disabled

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: