Não é possível excluir e remover o contexto do SELinux ou a ACL de um symlink em / usr / lib sob a raiz

1

Estou no Fedora 27 e tenho problemas com a atualização dos pacotes por dnf update . O problema é exatamente o descrito aqui: link

Eu tentei excluir o symlink em /usr/lib , mas não consigo, nem na raiz:

vplagov@thinkpad:~ $ sudo rm -f /usr/lib/cpp 
rm: cannot remove '/usr/lib/cpp': Operation not permitted
...
vplagov@thinkpad:~ $ file /usr/lib/cpp 
/usr/lib/cpp: symbolic link to ../bin/cpp
...
vplagov@thinkpad:~ $ ls -al /usr/lib/cpp 
lrwxrwxrwx. 1 root root 10 Sep 15 15:01 /usr/lib/cpp -> ../bin/cpp

Eu vejo que o arquivo tem um ponto no final das permissões de arquivo. Por googling eu encontrei comandos para remover o contexto do SELinux ou ACL (não sei quais são esses). Mas ainda não é possível consertar:

vplagov@thinkpad:~ $ sudo setfacl -b /usr/lib/cpp
...
vplagov@thinkpad:~ $ ls -al /usr/lib/cpp 
lrwxrwxrwx. 1 root root 10 Sep 15 15:01 /usr/lib/cpp -> ../bin/cpp
... 
vplagov@thinkpad:~ $ sudo rm -f /usr/lib/cpp 
rm: cannot remove '/usr/lib/cpp': Operation not permitted
...
vplagov@thinkpad:~ $ sudo setfattr -x security.selinux /usr/lib/cpp 
setfattr: /usr/lib/cpp: Permission denied

Existe uma opção "saudável" para corrigir isso?

    
por Vitalii Plagov 03.03.2018 / 23:47

2 respostas

1

Reinicie com o "escudo de emergência".

Eu acho que o caminho mais rápido poderia ser reiniciar o computador com o modo de execução do SELinux desativado em um shell de emergência. Apenas passe "rd.break enforcing = 0" para sua linha de comando de inicialização do kernel (acrescente à linha que começa com "linux" no menu de inicialização do GRUB, depois Ctrl + x para inicializar). Após a inicialização, remonte a partição de leitura / gravação /

mount –o remount,rw /sysroot

Nesse shell, você pode apenas cd em /sysroot/usr/lib/ e / ou rm de seu link simbólico.

Para sair, digite

reboot
    
por 28.03.2018 / 11:46
1

Você pode tentar reclassificar os arquivos em sua máquina executando fixfiles onboot e reinicializando

Você também pode querer verificar em qual contexto seu usuário atual está executando com id -Z , na instalação padrão, seu usuário deve executar em unconfined_t .

ls-z mostra os rótulos do SeLinux (compare-os com um sistema "bom").

setenforce 0 desativará o SeLinux temporariamente, embora seja melhor você corrigir a causa raiz (rótulos quebrados do SeLinux).

    
por 28.03.2018 / 11:37