Conceder a un usuario sftp acceso a un directorio / var / www

12

Creé un usuario e hice su directorio personal /var/www/mysite/ftpdir

También agregué una entrada de usuario Match para este usuario sshd_configcon un ChrootDirectory que apunta a/var/www/mysite

He reiniciado sshpara recoger esto.

Cuando inicio sesión con sftp, el usuario todavía va al directorio anterior del usuario, es decir /home/user

¿Qué me estoy perdiendo?

ojo de halcón
fuente
¿qué tal si enlace simbólico /home/useral objetivo?
ish

Respuestas:

17

Este es el proceso:

  1. Agregue el usuario al grupo: sudo usermod -aG www blubcomo en ¿ Cuál es la forma más sencilla de editar y agregar archivos a "/ var / www"?

    o simplemente usar sudo adduser <username> www-data

  2. Instalar vsftpd sudo apt-get install vsftpd
  3. Configure vsftpd para acceso remoto: sudo nano /etc/vsftpd.confy dentro del conjunto de archivos

    chroot_local_user=YES
    

    y asegúrese de que esto esté comentado:

    #chroot_list_enable=YES
    

    según la documentación .

  4. Reinicie nsftp: sudo service vsftpd restart
  5. Configure el directorio de inicio del usuario en el directorio web (no en /home):

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

    sudo nano /etc/ssh/sshd_config
    

    agregue lo siguiente al final:

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

    y asegúrese de que más arriba en el archivo esté comentado (es decir, antes del que acaba de agregar)

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

    sudo service ssh restart
    
  8. Cambia los permisos para apache:

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

    Como en los documentos aquí .

  9. Asegúrese de que su directorio tenga acceso a www-data

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    
ojo de halcón
fuente
2
He seguido estas instrucciones, pero me han negado la conexión al final cuando agrego estas líneas Subsistema sftp internal-sftp Igualar usuario <nombre de usuario> ChrootDirectory / var / www / site ForceCommand internal-sftp AllowTcpForwarding no
Ata
1
También tengo el mismo problema con Ubuntu 14.04
torayeff
¡También tengo el mismo problema!
maxisme
44
¿Cómo es que en el Paso 9 chown root:root /var/www/sitesolo tienes que volver al sudo chown -R www-data:www-data /var/www/sitePaso 10? ¿Es esto deliberado?
JohnnyQ
Esto no está funcionando para mí
Linga
2

Si recibe un error de conexión rechazada al final, asegúrese de que "Subsistema sftp internal-sftp" esté colocado después de "UsePAM yes" . Si no, actualice y reinicie ssh y funcionó.

Needhi Agrawal
fuente
0

Tengo un método simple y eso me funcionó para apache.

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

Eso es todo en caso de que aún se enfrente al uso de problemas de permisos chmody chownpara abordarlos de acuerdo con sus necesidades.

Imran Zahoor
fuente