Experimentando y Diagnosticando Errores de Permiso Denegado en SFTP
En este paso, nos conectaremos a nuestro servidor SFTP y experimentaremos de primera mano los errores de permiso denegado. Esto nos ayudará a comprender cómo la configuración de permisos afecta a las operaciones de SFTP.
Conexión al Servidor SFTP Localmente
Dado que estamos trabajando en un entorno local, podemos conectarnos a nuestro servidor SFTP utilizando la dirección localhost. Conectémonos usando el usuario sftpuser que creamos anteriormente:
sftp sftpuser@localhost
Cuando se le solicite la contraseña, ingrese la contraseña que configuró para la cuenta sftpuser (por ejemplo, password123). Si la conexión es exitosa, verá un mensaje como:
Connected to localhost.
sftp>
Si encuentra problemas de conexión, podría deberse a que el servicio SSH no se está ejecutando correctamente en el contenedor. Puede intentar salir con exit y continuar con los siguientes pasos utilizando ejemplos teóricos.
Comandos Básicos de SFTP
Exploremos algunos comandos básicos de SFTP:
- Ver el directorio actual en el servidor remoto:
sftp> pwd
Remote working directory: /home/sftpuser
- Listar archivos en el directorio actual:
sftp> ls
- Navegar a un directorio diferente:
sftp> cd /tmp
sftp> pwd
Remote working directory: /tmp
- Regresar a su directorio de inicio:
sftp> cd
sftp> pwd
Remote working directory: /home/sftpuser
Intentando Acceder a Archivos con Diferentes Permisos
Ahora, intentemos acceder a nuestros archivos de prueba desde la sesión SFTP:
- Intente obtener un archivo de nuestro directorio del proyecto:
sftp> get /home/labex/project/testfile.txt
Fetching /home/labex/project/testfile.txt to testfile.txt
Permission denied
Notará un error de "Permission denied" (Permiso denegado). Esto se debe a que el usuario sftpuser no tiene permiso para acceder a los archivos en el directorio de inicio del usuario labex.
Salir de la Sesión SFTP
Salgamos de la sesión SFTP para continuar:
sftp> exit
Comprensión de los Errores de Permiso Denegado
Hay varias razones comunes para los errores de "Permission denied" (Permiso denegado) en SFTP:
- Permisos de Archivo: El usuario no tiene acceso de lectura/escritura al archivo
- Permisos de Directorio: El usuario no puede acceder al directorio que contiene el archivo
- Problemas de Propiedad: El archivo/directorio pertenece a un usuario o grupo diferente
- Restricciones de Travesía de Ruta: La configuración de SFTP podría restringir a los usuarios a ciertos directorios
Hagamos que uno de nuestros archivos de prueba sea accesible para nuestro usuario SFTP:
## Create a directory that can be accessed by others
mkdir -p /tmp/shared
echo "This is a shared file for SFTP testing" > /tmp/shared/shared_file.txt
chmod 777 /tmp/shared
chmod 666 /tmp/shared/shared_file.txt
Ahora, vuelva a conectarse a SFTP e intente acceder a este archivo:
sftp sftpuser@localhost
Después de conectarse, intente:
sftp> get /tmp/shared/shared_file.txt
Fetching /tmp/shared/shared_file.txt to shared_file.txt
/tmp/shared/shared_file.txt 100% 36 1.0KB/s 00:00
Esto debería funcionar porque hemos dado a todos los permisos de lectura/escritura tanto al directorio como al archivo.
Salga de la sesión SFTP nuevamente:
sftp> exit
Uso de SFTP con Modo de Depuración
Para obtener más información sobre los errores de permiso, puede usar SFTP en modo de depuración:
sftp -v sftpuser@localhost
La salida detallada le mostrará información detallada sobre la conexión y cualquier error que ocurra:
debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2412, received 2876 bytes, in 0.1 seconds
Bytes per second: sent 30074.7, received 35857.2
debug1: Exit status 0