Mesmo a adição de todas capacidades disponíveis não ajuda. Um contêiner privilegiado ainda é necessário. Consulte o link para um problema do Kubernetes que rastreia essa deficiência.
Eu configurei o Home Assistant em um contêiner do Kubernetes. Ele precisa de acesso de gravação ao dispositivo / dev / ttyACM0 no computador host (ou seja, o computador que executa o contêiner). Funciona se eu tornar o contêiner “privilegiado” no Docker. O Kubernetes não fornece acesso direto ao mecanismo do Docker, mas o "privilegiado" também é possível com o Kubernetes.
O problema é que tornar um contêiner privilegiado é uma medida de último recurso. O Kubernetes também permite definir recursos do Linux. Agora me pergunto se é possível conceder acesso de gravação a / dev / ttyACM0 com apenas (um conjunto de) recursos do Linux?
Por que vale a pena, SYS_RAWIO
+ SYS_ADMIN
não foi suficiente.
Mesmo a adição de todas capacidades disponíveis não ajuda. Um contêiner privilegiado ainda é necessário. Consulte o link para um problema do Kubernetes que rastreia essa deficiência.
FOWNER
deve fazê-lo. A menos que seu software esteja tendo problemas ao emitir ioctls para configurar o link (nesse caso, você provavelmente precisará de SYS_ADMIN
ou TTY_CONFIG
), o problema é apenas uma das permissões de arquivo.
Dito isso, FOWNER
é uma capacidade perigosa MUITO para ser distribuída. Qualquer coisa com esse recurso pode ignorar as verificações de permissões do sistema de arquivos ALL .
Como alternativa, considere uma das opções a seguir se você puder colocar esse contêiner em execução sob seu próprio usuário:
/dev/ttyACM0
. Normalmente, esse grupo será chamado de algo como tty
, serial
ou console
, embora possa ser usb
ou hotplug
. Esta é a opção mais fácil, mas é apenas um pouco mais segura do que usar recursos, porque esse grupo geralmente tem a propriedade dos nós de dispositivos para todos os dispositivos seriais e também possui todos os nós de dispositivos terminais virtuais. Tags root privileges container linux