Site icon Tosolini.info

Apache: eseguire uno script come www-data

Uno dei problemi che possono presentarsi in particolari server web, è quello di lanciare un determinato comando come l’utente  Apache, ad esempio ai fini di verificare il buon funzionamento di uno script, o per cercare di risolvere qualche problema. Infatti Apache può lanciare, attraverso un suo utente dedicato l’esecuzione di determinati script, uno su tutti può essere proprio php.

Qui ovviamente sorge un bel problema, per default l’utente del webserver, di solito sotto Ubuntu è www-data, non ha il permesso di effettuare una login. Infatti nel file /etc/passwd potrete vedere che l’utente www-data ha come shell la indicazione /usr/bin/nologin. Questo, anche giustamente dal punto di vista della security, indica al sistema che non potrete effettuare il classico switch user e di conseguenze nemmeno impostare una password.

Per aggirare l’ostacolo ci viene in aiuto proprio il comando dello switch user


su - www-data -s /bin/bash -c 'comando_da_utilizzare'

Come si può apprezzare viene fornito il comando [textmarker color=”000000″]su -[/textmarker] seguito dall’utente www-data. La parte successiva, con il comando -s, si andrà ad indicare la classica impostazione della della shell (di solito /bin/bash) e successivamente il comando che desideriamo www-data mandi in esecuzione, esattamente come farebbe il webserver.

Exit mobile version