Erros de permissão, mesmo ao executar contêineres do Docker usando --cap-add ou --security-opt

0

Estou tentando definir a hora do sistema dentro de um contêiner docker¹.

Eu pensei que para conseguir isso eu simplesmente teria que adicionar o recurso SYS_TIME :

$ docker run --cap-add SYS_TIME -it ubuntu:16.04 /bin/bash
root@50007999ec5e:/# date --set "+2 hours"
date: cannot set date: Operation not permitted
Thu Jan 1 2:00:00 UTC 1970

Infelizmente, isso não funciona. Procurando por erros semelhantes Eu encontrei sugestões de que pode ser o AppArmor que está bloqueando a chamada do sistema, então eu tentei adicionar --security-opt apparmor:unconfined , mas, infelizmente, sem sucesso:

$ docker run --security-opt apparmor:unconfined --cap-add SYS_TIME -it ubuntu:16.04 /bin/bash
root@c4d923009bab:/# date --set "+2 hours"
date: cannot set date: Operation not permitted
Thu Jan 1 2:00:00 UTC 1970

O que deve significar que o AppArmor não está em falta aqui.

Obviamente, executar o contêiner usando --privileged works:

$ docker run --privileged -it ubuntu:16.04 /bin/bash
root@35ef33342149:/# date --set "+2 hours"
Thu Jan 1 2:00:00 UTC 1970

Mas o ponto principal do que estou tentando fazer é experimentar as opções e recursos de segurança do Docker. Estou faltando alguma coisa aqui? Você pode sugerir como depurar e corrigir esse problema?

¹ Sim. Eu sei que a hora do sistema não é um recurso com namespace.

    
por Giacomo Alzetta 16.01.2018 / 11:28

0 respostas