8 votes

CentOS 6 kickstart ignore le paramètre 'selinux --disabled'.

Je me suis battu avec celui-ci pendant un certain temps et il semble qu'il y ait eu une régression dans CentOS 6 en ce qui concerne l'ignorance par anaconda de l'adresse de l'utilisateur. selinux --disabled directive. Celle-ci semble être apparue pour la première fois dans RHEL 4.8 et est réapparue dans RHEL 5.6 .

Avec les versions précédentes, il suffisait d'ajouter l'instruction sed à votre fichier %post pour le désactiver.

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

Le problème auquel je me heurte 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 et que vous devez maintenant les effacer.

J'ai essayé d'exécuter la commande suivante pour supprimer ces attributs dans mon fichier %post mais cela n'a pas d'effet.

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

Mon fichier de démarrage 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/

6voto

Rilindo Points 5018

Le programme d'installation de CentOS 6 charge les stratégies en mode permissif par défaut (ce que j'ai confirmé en exécutant dmesg pendant l'installation). Cela signifie qu'à l'étape 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 boot loader) :

selinux=0

Donc quelque chose comme ça :

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

Voici ce qui se passe lorsque vous tentez de supprimer les attributs en mode permissif (pardonnez la mise en forme, la SF semble malheureuse) :

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

Avec selinux désactivé de Grub au démarrage :

[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

Basé sur ceci ainsi que sur ce bug rapport cela signifie probablement que vous ne serez pas en mesure de supprimer les attributs dans la post-installation. Donc, comme je l'ai souligné, vous devrez désactiver Selinux avant de démarrer l'installation.

(ou vous pouvez simplement le laisser tranquille et apprendre à vivre avec. :) ).

2voto

Fortilan Points 105

La "cause profonde" 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 y étaient toujours) :

firewall --disabled  
selinux  --disabled  

MAIS, j'ai aussi ajouté la chaîne 'selinux=0' au fichier de démarrage PXE :

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

default linux
label linux
  kernel vmlinuz-rhel-6.4-x86\_64
  append load\_ramdisk=1 initrd=initrd.img-rhel-6.4-x86\_64 network **selinux=0** ksdevice=eth0 ks=nfs:nolock,rsize=1480,wsize=1480:buildserver:/kickstart/host-configs/myserver-ks.cfg

Après avoir reconstruit le système, toutes les notations "point" avaient disparu ! !!

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X