Vedo molti consigli diversi online su dove servire la tua applicazione web, su quale utente eseguirlo come, ecc.Best practice per le autorizzazioni utente linux per l'esecuzione dell'applicazione web come?
Per esempio, l'ho visto servito da:/var/www/site ,/srv/www/site,/home/$ USER/sito.
Ho visto l'utente essere www-data, $ USER (ovvero il mio account utente) o un utente personalizzato creato appositamente per tale scopo (ad esempio, utente uwsgi).
In termini di sicurezza, qual è lo schema migliore che potrei scegliere?
Per riferimento, sto cercando di installare un sito Django con Nginx e uwsgi.
In questo momento, uwsgi è in esecuzione come root in modalità imperatore, con uid/gid impostato come www-data, quindi i vassalli generano le stesse autorizzazioni degli operatori Nginx. Sto servendo da/a casa, ma pensando di trasferirmi.
Se si dispone di un virtualenv, sarebbe andare in/var/lib/appname/venv? Inoltre, per essere chiari, l'utente dell'app potrebbe essere ad es. 'uwsgi', ma non l'utente che accedo come via ssh (e ha i permessi sudo)? – user1431368
FWIW, il mio codice Python vive in/home a causa di [il tutorial di Django] (https://docs.djangoproject.com/en/1.4/intro/tutorial01/) (sezione "Dove dovrebbe vivere questo codice?") – user1431368
Sì , 'uwsgi' sarebbe una buona scelta per il tuo utente dell'app, a meno che tu non abbia più di un'app in esecuzione, nel qual caso potresti volere degli utenti per app. L'utente NON dovrebbe avere sudo o autorizzazioni di accesso. Come sottolinea il tutorial, la cosa più importante è non avere il tuo codice sotto la tua web root. – bonsaiviking