O que não é imediatamente óbvio é que o SELINUX requer que o selinuxfs seja montado. Quando montado, o selinuxfs aparece em / proc / mounts mas não na saída do comando mount.
Montar o selinuxfs no meu initrd fez o truque
Eu tenho um DVD inicializável que inicializa o mesmo Kernel que o disco rígido (que usa o SELinux). Eu copiei / etc / selinux e todos os módulos do kernel para o meu disco, e tentei várias combinações de selinux=1
e selinux 1
com enforcing 1
e enforcing 0
. como parâmetros de inicialização do kernel. Todos os arquivos contidos nos diretórios checkpolicy, libselinux, policycoreutils, selinux-policy e selinux-policy-target também foram copiados para a árvore ramdisk.
Após o sistema inicializar a partir do ramdisk, eu verifico o dmesg:
% dmesg | grep -i selinux
Kernel command line: initrd=idrd.img ramdisk_size=110476 selinux=1
SELinux: Initializing.
SELinux: Starting in permissive mode
selinux_register_security: Registering secondary module capability
SElinux: Registering netfilter hooks
Mas o SELinux não está em execução:
% /usr/sbin/getenforce
Disabled
% /usr/sbin/setenforce 1
/usr/sbin/setenforce: SELinux is disabled
Nem /var/log/messages
nem /proc/kmsg
possuem pistas.
Não tenho certeza. Que distro, por curiosidade? Talvez enforcing=1
faça o truque. Dan Walsh é bem versado nisso , acho que ele faz a política para o SELinux @ Fedora. Eu também baseio isso na página wiki do Fedora Docs .