comando de serviço e usuário não root

1

Nos servidores linux do nosso cliente principal, nossos scripts bash estavam rodando sob root por anos. Agora queremos mudar isso por razões de segurança.

Alguns de nossos scripts foram acionados pelo comando "service", por exemplo, "service filescontrol start".

O administrador principal do nosso cliente também deseja que esses scripts acionados por serviço sejam executados em usuários normais.

Mas o conceito do comando "service" não está vinculado ao usuário root?

    
por Wolfgang Adamec 12.11.2013 / 09:57

1 resposta

2

service é um processo como outro qualquer. Na maioria das vezes, é /sbin/service . Como agora temos muitos gerenciadores de "init" (RC-Scripts, upstart, systemd, svcadm ...) cada um com suas especialidades, usando service para gerenciar scripts de inicialização é um bom ponto.

A modificação que você precisa fazer está vinculada ao sistema subjacente.

Por exemplo, em um sistema init-rc (o mais comum) chamando o script /etc/init.d/crond ou chamando service crond é o mesmo:

$ service crond status
crond (pid  1837) is running...
$ /etc/init.d/crond status
crond (pid  1837) is running...

Mas com o systemd, o problema é muito mais complicado, pois tudo é gerenciado pelo binário "systemd".

Portanto, se você não quiser gerenciar muitos sistemas e exceções, considere usar sudo . caso contrário, você pode iniciar seus scripts como usuário lambda ou usar scripts "set-uid".

    
por 12.11.2013 / 10:10

Tags