• Moderatore

    Gestione utenti:gruppi, permessi - NGINX - Filezilla - SSH - SFTP

    Ciao a tutti 🙂

    sto facendo alcune prove su una VPS dove ho installato Ngnix e wordpress, il problema è che se provo a modificare questi file via filezilla con connessione ssh non mi fa modificare nulla (accesso negato), wordpress invece lavora senza problemi (installa temi e plugin).

    Il file di configurazione ngnix ha come user www-data.

    Io ho inserito il mio utente nel gruppo www-data (quello che uso per accedere via ssh).

    I permessi de file nella cartella www sono a 755 www-data:www-data.

    Con queste impostazioni wordpress funziona bene può creare ed eliminare cartelle:file, se cambio proprietario ai file wp ad ogni installazione di plugin, temi o aggiornamento mi chiede i dati di accesso ftp (non c'è alcun demone ftp installato) e vorrei evitarlo.

    Ho provato ad aggiungere anche il gruppo www-data in nginx.conf a fianco dell'user ma nulla, sempre richiesta dati ftp da backend di wordpress.

    Ho provato anche a cambiare utente in nginx.conf ma nulla, sempre richiesta dati ftp da backend di wordpress.

    Ogni volta riavviato nginx (a volte ho anche riavviato la macchina per sicurezza)

    Ora io chiedo se posso creare una configurazione simile a molti hosting condivisi dove wordpress non chiede i dati ftp ogni volta e io pur con accesso ssh da filezilla posso modificare senza problemi file e cartelle.

    Ciao
    Enea


  • Super User

    Il gruppo : proprietario che hai assegnato non mi sembrano corretti.
    Devi invece creare creare un gruppo di tipo "client" e un proprietario del tipo "web1, web2, etc."

    I file di configurazione di nginx non vanno modificati, perché non assegnano permessi a file e cartelle.


  • Moderatore

    Ho trovato il problema e ho risolto:

    L'incriminato era php5-fpm e il suo file di configurazione www.conf che si trova in /etc/php5/fpm/pool.d.
    In questo file ci sono sia user che group ai quali ho messo quello che uso per l'accesso ssh, ora wordpress installa tutto e filezilla mi fa creare i file come volevo io (ovviamente ho cambiato proprietario con chown ai file in www uguali a quelli inseriti in www.conf).

    Abituato ad Apache non avevo considerato che ci potesse essere un servizio esterno a gestire i permessi.

    @francois007 said:

    Il gruppo : proprietario che hai assegnato non mi sembrano corretti.

    A quali ti riferisci? www-data?

    @francois007 said:

    Devi invece creare creare un gruppo di tipo "client" e un proprietario del tipo "web1, web2, etc."

    Ma poi nel file www.conf ci sta solo un proprietario e un gruppo.

    @francois007 said:

    I file di configurazione di nginx non vanno modificati, perché non assegnano permessi a file e cartelle.

    Me ne sono accorto 😛

    Ciao
    Enea


  • Super User

    Ciao overclokk. Lieto della soluzione che hai trovato da solo scavando nei config dei processi.
    Intanto benvenuto nel mondo di nginx! In questo mondo tutti i moduli php sono gestiti da un unico processo, il php-fpm, che nello specifico assegna user e group, oltre a gestire ogni singolo sito web come un processo unico (in /etc/php5/fpm/pool.d troverai tutte le configurazioni dei siti che gestirai sul server)!
    In ogni caso un chown www-data:www-data è fin troppo generico, se pensi di gestire più siti assegna degli user differenti proprio per le motivazioni che ti ho appena descritto sul php-fpm.
    A presto.


  • Moderatore

    Ciao francois007,

    @francois007 said:

    In questo mondo tutti i moduli php sono gestiti da un unico processo, il php-fpm,

    Me ne sono accorto 😛

    @francois007 said:

    che nello specifico assegna user e group, oltre a gestire ogni singolo sito web come un processo unico (in /etc/php5/fpm/pool.d troverai tutte le configurazioni dei siti che gestirai sul server)!

    Ovviamente mi sono segnato il percorso così non me lo dimentico 🙂

    @francois007 said:

    In ogni caso un chown www-data:www-data è fin troppo generico, se pensi di gestire più siti assegna degli user differenti proprio per le motivazioni che ti ho appena descritto sul php-fpm.

    Si, potrei gestire più siti, per il momento ho dato chown mio_utente:mio_gruppo, assegnare più user (con stesso gruppo) è meglio anche per la sicurezza? Diciamo che con uno è più comodo se devo modificare più siti (e non accedere ogni volta con utenti differenti).

    Ad ogni modo al mio utente ho creato una chiave SSH e disabilitato l'accesso con psw.

    Ciao
    Enea


  • Super User

    Per quanto riguarda l'aspetto della sicurezza non credo ci siano dei problemi. In ogni modo non ho mai testato la gestione di più domini con un singolo user : group (in php ogni dominio ha la sua configurazione php e un PID univoco assegnato dal mio pannello di gestione di hosting).

    Proverò su una macchina locale questo aspetto e ti farò sapere.
    Ciao Enea, a presto 😉


  • Moderatore

    Farò delle prove anch'io 🙂

    Grazie mille francois007

    Ciao
    Enea


  • Super User

    Ho testato e non funziona... in sostanza ogni dominio resta in ascolto su una porta locale, esempio:

    [web1]

    listen = 127.0.0.1:9010
    listen.allowed_clients = 127.0.0.1

    user = web1
    group = client1

    pm = dynamic
    pm.max_children = 10
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 5
    pm.max_requests = 0

    chdir = /

    php_admin_value[open_basedir] = /var/www/clients/client1/web1/web:/var/www/clients/client1/web1/private:/var/www/clients/client1/web1/tmp:/var/www/NomeDominio.tld/web:/srv/www/NomeDominio.tld/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin
    php_admin_value[session.save_path] = /var/www/clients/client1/web1/tmp
    php_admin_value[upload_tmp_dir] = /var/www/clients/client1/web1/tmp
    php_admin_value[sendmail_path] = "/usr/sbin/sendmail -t -i [email][email protected][/email]"

    Questo dominio è in ascolto sulla porta locale 9010:
    listen = 127.0.0.1:9010
    listen.allowed_clients = 127.0.0.1

    Una sola raccomandazione, i processi CGI e FastCGI nginx li gestisce (in un server debian stable) il pacchetto fcgiwrap! Se non è presente installalo!

    A presto Enea.


  • Moderatore

    Ciao francois007,

    ho provato anch'io e ho aggiunto un dominio fake ma non ho avuto bisogno di settare un utente aggiuntivo, uso sempre il mio e funzionano entrambi.

    Con FcgiWrap devo anche fare i settaggi come indicato nella guida qui? https://help.ubuntu.com/community/FcgiWrap

    Ciao
    Enea


  • Super User

    Penso proprio di no, dalla guida è evidente che hanno compilato i sorgenti, credo che tu abbia installato il pacchetto direttamente da repositorio!


  • Moderatore

    Ottimo, perfetto.

    Grazie mille per l'aiuto 🙂

    Ciao
    Enea


  • Super User

    Ottimo overclockk, felice che questo test sia andato a buon fine... a presto 😉