setcap 'cap_net_bind_service=+ep' /path/to/syslogd
Requer um kernel Linux não antigo ( 2.6.24 ou mais tarde)
Eu quero que o syslog seja executado como um usuário não-root na minha caixa linux. Isso impossibilita a conexão com a porta 514 - porque essa é uma porta privilegiada. Existe alguma maneira eu posso conceder ao usuário não administrador "foo" a capacidade de ouvir na porta 514?
setcap 'cap_net_bind_service=+ep' /path/to/syslogd
Requer um kernel Linux não antigo ( 2.6.24 ou mais tarde)
Você pode configurar rinetd
(disponível na maioria dos repositórios padrão da distribuição, se não em todos) para escutar na porta 514 e encaminhar conexões para alguma outra porta (acima de 1024, por exemplo, 1514). Dessa forma, o processo de usuário não privilegiado pode ouvir em 1514 e rinetd
encaminhará as conexões para que pareça estar escutando em 514.
Isso funcionará apenas para conexões TCP. Se você precisar suportar UDP (ou qualquer outra coisa) dessa forma, bem como ou em vez de TCP, você pode usar as regras de conversão do iptables para obter o mesmo efeito.
Apenas encontrei uma discussão muito boa sobre isso aqui: link
Não parece fácil
Ouça em uma porta não privilegiada e use o iptables dnat para redirecionar as conexões.
Tags permissions syslog port