O 'mv --context' (para selinux, a.k.a.-Z) aplica corretamente os rótulos recursivamente ao conteúdo do diretório?

0

mv -Z aplica o contexto padrão do selinux. Ele difere de todas as outras invocações de mv e funciona em todos os arquivos em um diretório movido individualmente?

    
por sourcejedi 13.01.2017 / 00:03

1 resposta

0

Sim.

$ mkdir a
$ touch a/b
$ ls -Z -d a a/b
unconfined_u:object_r:user_home_t:s0 a
unconfined_u:object_r:user_home_t:s0 a/b
$ strace -f mv -Z a ~/.local/share/Trash/files
...
open("/home/alan/.local/share/Trash/files/a/b", O_RDONLY|O_NOFOLLOW) = 3
...
fgetxattr(3, "security.selinux", "unconfined_u:object_r:user_home_t:s0", 255) = 37
fsetxattr(3, "security.selinux", "unconfined_u:object_r:data_home_t:s0", 37, 0) = 0
...
$ cd ~/.local/share/Trash/files
$ ls -Zd a a/b
unconfined_u:object_r:data_home_t:s0 a
unconfined_u:object_r:data_home_t:s0 a/b

Isso também introduziu a possibilidade de que a movimentação de um diretório dentro de um único sistema de arquivos falhe na metade do caminho. Ou seja devido à falta de espaço em disco ao alterar as etiquetas. O impacto disso é mitigado, pois o reclass acontece como um segundo passo. A operação de movimentação inicial ainda é de uma% atômica rename . Isso significa que os rótulos seriam inconsistentes, mas os arquivos serão consistentes de todas as outras formas. Deve ser simples corrigir os rótulos quando o espaço estiver disponível.

    
por 13.01.2017 / 00:03