User Tools

Site Tools


informatica:linux:sftp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:linux:sftp [2016/11/17 12:22] – [sftp] javiinformatica:linux:sftp [2018/10/22 09:43] (current) – [Restringir sftp a un usuario con escritura] javi
Line 8: Line 8:
  
   drwxr-xr-x 4 root root 4096 Nov 17 12:02 www   drwxr-xr-x 4 root root 4096 Nov 17 12:02 www
-   + 
-  Es decir, pertenecer al usuario y grupo "root" y permisos 755.+Es decir, pertenecer al usuario y grupo "root" y permisos 755. En caso contrario al intentar hacer el sftp se obtiene el siguiente error: 
 + 
 +<code>   
 +packet_write_wait: Connection to 172.17.0.2 port 22: Broken pipe 
 +Couldn't read packet: Connection reset by peer 
 +</code>
  
 ===== Restringir sftp a un usuario y a una IP, solo lectura ===== ===== Restringir sftp a un usuario y a una IP, solo lectura =====
Line 45: Line 50:
  
 ===== Restringir sftp a un usuario con escritura ===== ===== Restringir sftp a un usuario con escritura =====
 +
 +**NOTA** Procedimiento revisado 22/10/2018. Sospecho que otras secciones en este artículo deben ser revisados
  
 1. Crear el usuario "ftp_user" 1. Crear el usuario "ftp_user"
Line 52: Line 59:
 Contestar a todas las preguntas. Recordar la contrasenya Contestar a todas las preguntas. Recordar la contrasenya
  
-2. Crear el directorio al que se podra conectar:+2. Crear el punto de montaje:
  
-  sudo mkdir -p /srv/ftp/usuario/ftp +  sudo mkdir -p /srv/ftp/ftp_user/ftp 
-  sudo chmod 0755 /srv/ftp/usuario/+  sudo chmod 0755 /srv/ftp/ftp_user/
      
-3. Crear el punto de montaje:+3. Crear el directorio al cual se podrá conectar:
  
-  sudo mkdir -p /home/usuario/ftp +  sudo mkdir -p /home/ftp_user/ftp 
-  sudo chown usuario:usuario /home/usuario/ftp+  sudo touch /home/ftp_user/ftp/test_file_to_be_seen 
 +  sudo chown ftp_user:ftp_user /home/ftp_user/*
      
 4. Montarlo de forma persistente: 4. Montarlo de forma persistente:
Line 68: Line 76:
 Con la siguiente linea: Con la siguiente linea:
  
-  /srv/ftp/usuario/ftp      /home/usuario/ftp none    bind+  /home/ftp_user/ftp /srv/ftp/ftp_user/ftp       none    bind       0
  
 5. Editar: 5. Editar:
Line 80: Line 88:
 Subsystem sftp internal-sftp Subsystem sftp internal-sftp
  
-Match User usuario +Match User ftp_user
     PasswordAuthentication yes     PasswordAuthentication yes
-    ChrootDirectory /srv/ftp/usuario+    ChrootDirectory /srv/ftp/ftp_user
     AllowTCPForwarding no     AllowTCPForwarding no
     X11Forwarding no     X11Forwarding no
Line 94: Line 102:
 7. Probar desde el cliente: 7. Probar desde el cliente:
  
-  sftp usuario@maquina_remota+  sftp ftp_user@maquina_remota
   cd ftp   cd ftp
   put local_file.txt   put local_file.txt
Line 101: Line 109:
  
 ^ Directorio ^ Propietario ^ ^ Directorio ^ Propietario ^
-| /srv/ftp/usuario | root | +| /srv/ftp/ftp_user | root | 
-| /srv/ftp/usuario/dir1 | usuario |+| /srv/ftp/ftp_user/dir1 | usuario | 
 + 
 +===== Acceso escritura usuario www-data ===== 
 + 
 +Es un parche para que se puedan subir archivos vía SFTP o a través de la aplicación web (por ejemplo Wordpress) sin que haya colisión de permisos: 
 + 
 +1. Editar el archivo original: 
 + 
 +  sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak  
 +  sudo vim /etc/ssh/sshd_config 
 +   
 +Y anyadir al final: 
 + 
 +  AllowUsers www-data 
 + 
 +2. Editar: 
 + 
 +  sudo cp /etc/passwd /etc/passwd.bak  
 +  sudo vim /etc/passwd 
 +   
 +Y dejar la linea del usuario 'www-data' así: 
 + 
 +  www-data:x:33:33:www-data:/var/www:/bin/bash 
 + 
 +3. Asignar una contraseña al usuario 'www-data': 
 + 
 +  sudo passwd www-data 
 +   
 +4. Probar: 
 + 
 +  sftp www-data@ip_servidor 
informatica/linux/sftp.1479385353.txt.gz · Last modified: 2016/11/17 12:22 by javi