Onde durante a inicialização os recursos são recuperados

Onde durante a inicialização os recursos são recuperados

Quero que um aplicativo de nó tenha a capacidade de se vincular a portas de baixo número (443 para ser mais preciso, já que é um servidor http2).

Eu faço isso comsudo setcap cap_net_bind_service=+ep /path/to/node

Aparentemente, isso é lembrado durante uma bota. Estou usando o nvm para permitir que diferentes versões do nó sejam instaladas e acabei de atualizar a versão e, claro, não vinculo mais.

É fácil adicionar o recurso novamente, mas provavelmente em algum lugar estou acumulando permissões que devo desativar em versões mais antigas do node.

Mas não consigo descobrir onde isso acontece na sequência de inicialização. Alguém pode me dizer onde (estou executando o Debian).

EDITAR

Acho que as informações devem ser armazenadas nos atributos extras do executável. No entanto, não consigo encontrar nenhum atributo extra nos arquivos que configurei dessa maneira.

Responder1

Os recursos são armazenados com a entrada do arquivo no diretório (mais precisamente, eles estão no arquivoinode, como outros tipos de permissões). Nada de especial acontece durante a inicialização.

A partir do GNU coreutils 8.23, o lscomando não conhece os recursos do Linux, então você não encontrará nada em sua saída que informe que um programa possui recursos definidos. Use o getcapcomando para listar os recursos.

Para limpar todos os recursos de um arquivo, use setcap -r /path/to/file. Porém, você não precisa limpar nada - os recursos são armazenados com o arquivo, não há nada a fazer além de remover o arquivo.

Responder2

Veja setcap(8), os recursos estão definidospara o arquivo executável. Isso funciona de forma semelhante (mas com granularidade mais fina que) SUID ou SGID. Em nenhum lugar do "processo de inicialização" isso é tratado; sempre que o arquivo é executado como um programa, o processo resultante obtém os recursos.

Sim, deixar versões antigas do arquivo com privilégios elevados é um sério risco de segurança, é melhor excluir as versões antigas sempre que uma nova for instalada.

informação relacionada