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

1

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

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

Isso é aparentemente lembrado em uma inicialização. Estou usando o nvm para permitir que eu tenha versões diferentes do nó instaladas, e acabei de atualizar a versão e, é claro, não mais ligo.

É bastante fácil adicionar a capacidade novamente, mas presumivelmente em algum lugar estou acumulando permissões que eu deveria desativar em versões mais antigas do nó.

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

EDITAR

Acho que a informação deve ser armazenada dentro dos atributos extras do executável. No entanto, não consigo encontrar nenhum atributo extra nos arquivos que configurei dessa maneira.

    
por akc42 19.02.2016 / 10:43

2 respostas

1

Veja setcap(8) , os recursos são definidos para o arquivo executável . Isso funciona de maneira semelhante a (mas com maior granularidade que) SUID ou SGID. Em nenhum lugar no "processo de inicialização" é 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 estiver instalada.

    
por 20.02.2016 / 01:25
2

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

Como no GNU coreutils 8.23, o comando ls não sabe sobre os recursos do Linux, portanto você não encontrará nada em sua saída para informar que um programa possui recursos configurados. Use o comando getcap para listar recursos.

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

    
por 20.02.2016 / 01:54

Tags