Eu tenho um diretório contendo alguns scripts que preciso invocar a partir de uma solicitação da web. Os scripts precisam de permissões elevadas para serem executados.
Meu pensamento atual é adicionar as seguintes linhas a /etc/sudoers
:
Cmnd_Alias WEB_COMMANDS = /path/to/scripts
www-data ALL=(ALL) NOPASSWD: WEB_COMMANDS
Esta é a abordagem correta para este problema? Ou estou causando uma potencial vulnerabilidade de segurança?
Usando CentOS 7, se isso faz alguma diferença.
Responder1
Qualquer coisa é uma vulnerabilidade potencial de segurança. Duas coisas:
Em primeiro lugar, você estáclaroprecisa de raiz? Por que? Você pode fazer isso com recursos? (Você provavelmente pode.)
Dito isto, seu exemplo é quase certeiro. Adicione um asterisco após o caminho:
Cmnd_Alias WEB_COMMANDS = /path/to/scripts/*
E agora vai funcionar. Mas cuidado, se algum desses scripts puder ser modificado por um invasor, o invasor ganharáACESSO ROOT COMPLETO. Eles podem simplesmente exec('/bin/bash')
ter uma concha. Definitivamente, siga a rota dos recursos por script, se possível, e DEFINITIVAMENTE bloqueie o diretório do script de qualquer maneira. Veresta resposta unix.separa obter informações sobre como gerenciar recursos com scripts.