Concedere a un utente sftp l'accesso a una directory / var / www


12

Ho creato un utente e creato la sua directory home /var/www/mysite/ftpdir

Ho anche aggiunto una voce utente Match per questo utente sshd_configcon una ChrootDirectory a cui punta/var/www/mysite

Ho ricominciato ssha raccoglierlo.

Quando eseguo l'accesso con sftp, l'utente passa comunque alla vecchia directory dell'utente, ad es /home/user

Cosa mi sto perdendo?


che ne dici del tuo link simbolico /home/useral bersaglio?
ish,

Risposte:


17

Questo è il processo:

  1. Aggiungi l'utente al gruppo: sudo usermod -aG www blubcome in Qual è il modo più semplice per modificare e aggiungere file a "/ var / www"?

    o semplicemente usa sudo adduser <username> www-data

  2. Installa vsftpd sudo apt-get install vsftpd
  3. Configura vsftpd per l'accesso remoto: sudo nano /etc/vsftpd.confe all'interno del set di file

    chroot_local_user=YES
    

    e assicurati che questo sia commentato:

    #chroot_list_enable=YES
    

    come da documentazione .

  4. Riavvia nsftp: sudo service vsftpd restart
  5. Configurare la home directory dell'utente nella directory web (non in /home):

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. Configura ssh chroot

    sudo nano /etc/ssh/sshd_config
    

    aggiungere quanto segue alla fine:

    Subsystem  sftp  internal-sftp
    Match user <username>
        ChrootDirectory /var/www/site
        ForceCommand internal-sftp
    AllowTcpForwarding no
    

    e assicurati che nel file sia presente un commento più avanti (ovvero prima di quello che hai appena aggiunto)

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  7. Riavvia ssh

    sudo service ssh restart
    
  8. Modifica le autorizzazioni per apache:

    chown root:root /var/www
    chown root:root /var/www/site
    chmod 755 /var/www
    

    Come nei documenti qui .

  9. Assicurati che la tua directory abbia accesso ai dati www

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    

2
Ho seguito queste istruzioni, ma alla fine ho rifiutato la connessione quando aggiungo queste righe Sottosistema sftp internal-sftp Abbina utente <username> ChrootDirectory / var / www / site ForceCommand internal-sftp AllowTcpForwarding no
Ata

1
Ho anche lo stesso problema con Ubuntu 14.04
torayeff,

Anch'io ho lo stesso problema!
massimo

4
Come mai al passaggio 9 devi chown root:root /var/www/sitesolo ripristinarlo sudo chown -R www-data:www-data /var/www/siteal passaggio 10 è deliberato?
JohnnyQ,

Questo non funziona per me
Linga,

2

Se ricevi un errore di connessione rifiutata alla fine, assicurati che "Sottosistema sftp internal-sftp" sia posto dopo "UsePAM yes" . Altrimenti aggiorna e riavvia ssh e ha funzionato.


0

Ho un metodo semplice e ha funzionato per me per Apache.

sudo useradd -d /var/www demo_user -g www-data
sudo passwd demo_user
sudo service ssh restart

Questo è tutto nel caso in cui si debbano ancora affrontare problemi di autorizzazione chmode chownaffrontarli in base alle proprie esigenze.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.