Eu tenho brigado com este há um tempo e parece que houve uma regressão no CentOS 6 até a anaconda ignorando a selinux --disabled
diretiva. Parece que ele apareceu pela primeira vez no RHEL 4.8 e depois reapareceu no RHEL 5.6 .
Agora, nas versões anteriores, você apenas adicionaria a instrução sed à sua %post
diretiva para desativá-la.
sed -i -e 's/\(^SELINUX=\).*$/\1permissive/' /etc/selinux/config
O problema que eu estou enfrentando é que o novo no RHEL / CentOS 6 é o fato de eles estarem definindo os atributos do sistema de arquivos por padrão, então você agora precisa limpá-los.
Tentei executar o seguinte comando para remover esses atributos na minha %post
seção, mas não tem nenhum efeito.
find . -exec setfattr -x security.selinux {} \;
Meu arquivo kickstart está abaixo, caso você ache ú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
estrofe, você está anexando/tmp/nic-include
e depois subindo na próxima linha.Respostas:
O instalador do CentOS 6 carrega as políticas no modo permissivo por padrão (o que eu confirmei executando o dmesg durante a instalação). Isso significa a etapa de pós-instalação, o SELinux já está ativo. Enquanto estiver em execução, não parece que você possa remover os atributos.
Você precisará passar o seguinte em algum lugar antes do início da instalação (logo no final do kernel, a linha do carregador de inicialização):
Então, algo como isto:
Aqui está o que acontece quando você tenta remover os atributos enquanto está no modo permissivo (perdoe a formatação, SF parece infeliz):
Com o selinux desativado do grub no momento da inicialização:
Com base nisso e neste relatório de bug , isso provavelmente significa que você não poderá remover os atributos na pós-instalação. Então, como descrevi, você precisará desativar o selinux antes de inicializar a instalação.
(ou você pode simplesmente deixá-lo em paz e aprender a viver com ele. :)).
fonte
A 'causa raiz' do problema é que o Anaconda implementa os atributos selinux durante o processo de kickstart (de forma que qualquer desabilitação 'pós-instalação' seja tarde demais).
Coloquei os métodos de desativação nos arquivos de configuração do host (na verdade, eles sempre estavam lá):
MAS, também adicionou a string 'selinux = 0' ao arquivo de inicialização do PXE:
Após a reconstrução do sistema, todas as anotações de 'ponto' desapareceram !!!
fonte