Você pode usar su
em seus scripts de inicialização:
su -s /bin/sh -c '/usr/bin/somedaemon' someuser
Outra solução seria iniciar o daemon usando o cron .
Eu tenho um daemon DNS autoritativo na minha configuração de DNS de teste, que é responsável por fornecer o IP do host na melhor escolha.
Esse daemon / processo pode ser executado definindo alguns recursos usando setcap
e, em seguida, um usuário de desenvolvimento pode iniciar ou parar isso sem se tornar o usuário root ou usando sudo
.
Mas durante a inicialização da caixa, esse daemon / processo aparece novamente como executando como root em ps
output.
Posso iniciar / parar este processo com recursos / privilégios mínimos de um usuário não-root? Então, no boot, eu também não quero ver isso sendo executado como usuário root.
Existe algum mecanismo nos scripts init para executar o processo dado com uid diferente de zero?
Você pode usar su
em seus scripts de inicialização:
su -s /bin/sh -c '/usr/bin/somedaemon' someuser
Outra solução seria iniciar o daemon usando o cron .
Você deve apenas ligar:
sudo -u username your_daemon_name
no script de inicialização, como root
executa o script de inicialização, ele não pedirá uma senha, mas executará os scripts como nome de usuário.
Se você estiver usando systemd (a partir de hoje, apenas o Slackware, o Ubuntu e o Debian entre as distribuições Linux estão usando qualquer coisa else) você pode definir o usuário / grupo em seu arquivo .service (veja systemd.service (5), systemd.exec (5), e navegue pela copiosa documentação aqui ).
Tags privileges setcap linux init-script