Utilizzo di sudo per proteggere la distribuzione git tramite script web

5

Sto configurando un server per eseguire la distribuzione automatica da un repository git Bitbucket, utilizzando la funzione di postback di Bitbucket.

In breve, come funziona:

  1. Mi impegno su Bitbucket
  2. POST di Bitbucket a uno script specificato (che viene eseguito solo se chiamato dall'indirizzo IP di BB)
  3. Il mio script si collega alla directory appropriata, esegue git reset e git pull per aggiornarlo alla versione più recente (è uno script php che usa exec ()).

Ho avuto l'idea da:

link

E nel complesso sembra ok, ma ha per me un'importante preoccupazione per la sicurezza: per farlo funzionare, dovresti dare accesso / proprietà della directory del sito di apache per eseguire la distribuzione. Mi sembra una cattiva idea, perché un utente malintenzionato utilizza apache per scrivere file arbitrari all'interno della directory.

La mia idea in alternativa è:

  1. Crea un altro utente, "deploy", quindi rendi l'utente proprietario della directory del sito.
  2. Usa sudoers per consentire ad apache di eseguire uno script di shell specifico come utente deploy, e metti il mio git reset, comando di pull ecc in quello script di shell.
  3. Nelle mie chiamate exec (), ad es. "sudo -u deploy shell-script.sh"

Qualcuno può vedere difetti / buchi con questo?

    
posta Iain 15.12.2012 - 00:19
fonte

1 risposta

1

Chiamare sudo da apache non sembra corretto, anche se non riesco a mettere il dito sul set esatto dei motivi per cui sarebbe una cattiva idea.

Suggerirei invece di fare sudo per eseguire semplicemente un semplice CGI come "suexecusergroup deploy" che riceverebbe il postback da bitbucket ed eseguirà i comandi git. Questo è molto più semplice e sano.

    
risposta data 16.12.2012 - 04:11
fonte

Leggi altre domande sui tag