Posso remover arquivos que possuem ponto e vírgula; neles (criados por atualizações?)

Posso remover arquivos que possuem ponto e vírgula; neles (criados por atualizações?)

Encontrei, por acidente, algumas dezenas de arquivos /usr/binque continham ponto e vírgula ;. Se bem me lembro, arquivos como esse são criados quando um arquivo aberto por algum programa é gravado (por exemplo, durante uma atualização do sistema operacional). No entanto, pensei que eles seriam excluídos durante a próxima reinicialização. No meu caso, entretanto, esses arquivos não estão abertos:

# find /usr -name \*\;\* | grep c++
/usr/bin/c++;5cf64746
/usr/bin/c++;5cfffc10
/usr/bin/c++;5cfb88d7
/usr/bin/c++;5cf8e8e4
/usr/bin/c++;5cfcd91f
/usr/bin/c++;5cc1f485
/usr/bin/c++;5cf4f405
/usr/bin/c++;5cfffc85
/usr/bin/c++;5cf7968b
/usr/bin/c++;5cfe28b9
/usr/bin/c++;5cff80b7
/usr/bin/c++;5cf57b84
/usr/bin/c++;5cfc4cbf

# lsof | fgrep /c++ 
Exit 1

Questões:

  1. Posso remover esses arquivos com segurança?

  2. Por que eles estão aqui em primeiro lugar?

O computador nunca travou, todas as reinicializações limpas. É um sistema CentOS 7. As atualizações foram instaladas por yum.

Muitos arquivos são realmente idênticos (embora todos os inodes sejam diferentes, verifiquei):

# ll /usr/bin/c++?5*
-rwxr-xr-x. 2 root root 772688 Mar  6  2018 /usr/bin/c++;5cc1f485
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf4f405
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf57b84
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf64746
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf7968b
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf8e8e4
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cfc4cbf
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cfb88d7
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cfcd91f
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cfe28b9
-rwxr-xr-x. 4 root root 772720 May 15  2018 /usr/bin/c++;5cff80b7
-rwxr-xr-x. 4 root root 772720 May 15  2018 /usr/bin/c++;5cfffc10
-rwxr-xr-x. 4 root root 772720 May 15  2018 /usr/bin/c++;5cfffc85

A explicação por atualizações ainda faz sentido?

Responder1

Eu descobri por que esses arquivos foram criados. Eu tinha um processo em execução em um contêiner (apresentando um namespace de montagem do kernel Linux (sistema de arquivos)), criado porCadeia de Fogo. Firejail mascara alguns arquivos (por exemplo, executáveis ​​e bibliotecas) de serem acessados ​​pelo processo dentro do contêiner. Esses arquivos, portanto, ainda são referenciados pelo kernel do Linux quando são excluídos por yum update/ dnf update. Portanto, eles não são removidos naquele momento.

Isso também significa que os arquivos podem ser removidos com segurança após uma reinicialização - ou, na verdade, após a saída do último processo do contêiner que os utilizou.

A questão permanece por que esses arquivos não são removidos quando o contêiner/computador é desligado. Eu suspeito que este seja um bug não corrigido no kernel (driver do sistema de arquivos ext4?) Nessas máquinas.

informação relacionada