Pedindo senha de outro usuário ao usar o sudo

3

Estou executando um pacote de automação residencial chamado HomeSeer em um servidor Ubuntu 15.04. Eu tenho configurado para executar com uma conta de serviço (chamada "_homeseer"), e eu chown'd o diretório do aplicativo para _homeseer: _homeseer.

Para instalar atualizações neste pacote, eu faço o download de um arquivo tar.gz e, em seguida, executo o script "update.sh" fornecido pelo fornecedor. Este script extrai o arquivo compactado, que por acaso também se sobrescreve (update.sh) ... então estou pensando que não posso simplesmente mudar esse script, a menos que eu copie para uma pasta separada em algum lugar.

Como parte do update.sh, há uma linha que chama "sudo update_extra.sh". Como estou executando o update.sh como a conta de serviço, essa linha sudo solicita a senha da conta de serviço ... que não me lembro (nem acho que queira).

Não desejo conceder a essa conta direitos completos de sudo sem uma senha, pois isso representaria um risco de segurança significativo (por exemplo, o aplicativo executa um servidor da Web). Eu também estou um pouco desconfiado de dar-lhe direitos sudo completos para executar esse arquivo update_extra.sh como root, já que esse arquivo pode ser atualizado pela mesma conta de serviço.

Minha pergunta:

É possível configurar o sudo (ou seja, visudo), portanto, se a conta _homeseer tentar usar o sudo, ele solicitará a senha da minha conta pessoal e será executado com os direitos sudo que eu tenho? Eu prefiro não definir uma senha de root se eu puder evitá-la ... mas uma olhada preliminar parece indicar que eu posso não ter muita escolha, se eu quiser seguir esse caminho.

Ou eu preciso modificar esse script update.sh, configurar permissões de grupo para que eu possa aplicar as atualizações como eu e usar a conta de serviço posteriormente?

    
por boonebytes 07.06.2015 / 14:48

1 resposta

2

Você pode fazer com que o sudo lide com isso.

Se você adicionar isso ao seu arquivo sudoers:

_homeseer hostname = (_homeseer) NOPASSWD: /path/to/update.sh
  • hostname = saída de hostname na sua máquina.

Uma coisa a se notar é que não há uma maneira 100% segura de lidar com o update.sh, já que ele pode conter qualquer comando, e estou assumindo que ele mudará com o tempo, o que significa que você não pode usar Função HASH para garantir que o script seja o mesmo de antes.

    
por 07.06.2015 / 16:37