Executa cronjobs como root enquanto o Apache está sendo executado como um usuário não root

-1

estou construindo uma aplicação Web simples que roda em um dispositivo minúsculo (Odroid C1 com Ubuntu Server 14.04) .. o aplicativo web usará php .. meu problema é que eu quero criar uma página "Configurações" onde o usuário pode personalizar, por exemplo, o endereço ip local ou reiniciar / desligar a máquina .. basicamente, eu preciso executar comandos que precisam de usuário root em geral. Mas, por razões de segurança, eu quero negar o acesso root ao dispositivo para todos. Além disso, eu quero rodar o Apache (e outro programa C ++ com o qual o Aplicativo da Web interage) como usuário normal (não root).

vou dar um exemplo para explicar melhor .. no exemplo "user" será o usuário não-root e "root" será .... imagine :) Por isso, eu queria saber se esse cenário é possível e, se sim, como:

  • instale o apache2 e o php;
  • crie o "usuário" de usuário não-root e instale / execute o aplicativo C ++ em / home / user / prod
  • execute o apache como usuário não raiz (é possível? como? não é recomendado?)
  • crie cronjobs para executar como root .. eu precisarei deles para permitir que o aplicativo da web faça root stuffs

Eu sou bastante novo em desenvolvimento web e administração de sistemas, então eu tenho mais algumas perguntas (a maioria delas pode ser até mesmo perguntas noob, me desculpe):

  • quando um cliente inicializar o dispositivo (que não terá interface gráfica, a única maneira de interagir será o servidor da web, como um roteador / modem), eu sei que posso executar qualquer script / comando na inicialização, mas sobre o usuário? Quero dizer, desde que eu quero executar o Apache eo programa C + + como não-root .. existe uma maneira de executá-los na inicialização como não-raiz? Como?
  • existe uma maneira de excluir / negar qualquer login? Eu quero que o usuário apenas pressione o botão "Boot" e conecte através de seu navegador para Apache .. nada mais

Muito obrigado.

EDITAR:

  • o cronjobs é executado sempre como root, em qual usuário está logado e qual programa está sendo executado? Eu nunca usei cronjobs antes
por Sciakysystem 04.03.2015 / 23:38

1 resposta

0

É possível conceder apenas algumas ações de raiz aos usuários?

Sim com visudo , ou eventos de arquivo, ou com o bit s em um script, ou com a raiz crontab .

como executar o apache etc como usuário não-root?

Isso é padrão para o Apache e você pode usar su , sudo ou runuser para aplicativos que ainda não fazem isso.

Como criar cronjobs de raiz?

Todo usuário tem um crontab, apenas coloque seu script no root

como executar serviços na inicialização como não-raiz?

Você pode usar qualquer comando em um script de inicialização para que a resposta seja igual à sua como executar uma pergunta raiz.

existe uma maneira de excluir / negar qualquer login?

Você pode fazer o login exigir o uso de outro computador, mas não.

eu quero que o usuário simplesmente aperte o botão "Boot" e conecte através do navegador dele ao Apache.

Isso funcionará por padrão

o cronjobs é executado sempre como root, em qual usuário está logado e qual programa está sendo executado?

Não há crontab por usuário, leia man crontab para detalhes

    
por user1133275 05.03.2015 / 03:27