Para crear un servidor SFTP en el cual los archivos se eliminen automáticamente de la carpeta una vez que se descarguen, puedes seguir estos pasos en un entorno Linux. La idea principal es combinar la configuración del SFTP con un script que detecte las descargas y elimine los archivos correspondientes.
1. Configurar el Servidor SFTP:
Primero, instala y configura el servidor SFTP.
Paso 1: Instalar OpenSSH
sudo apt-get update
sudo apt-get install openssh-server
Paso 2: Configurar el SFTP
Edita el archivo de configuración de SSH para restringir el acceso al SFTP:
sudo nano /etc/ssh/sshd_config
Agrega o modifica las siguientes líneas al final del archivo:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Aquí sftpuser es el usuario que utilizará el SFTP.
Paso 3: Crear el usuario y la estructura de directorios
Crea un usuario dedicado para SFTP y su directorio.
sudo adduser sftpuser
sudo mkdir -p /home/sftpuser/uploads
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo chown sftpuser:sftpuser /home/sftpuser/uploads
Paso 4: Reiniciar el servicio SSH
sudo systemctl restart ssh
2. Crear un Script para Eliminar Archivos Después de la Descarga:
Paso 1: Crear el Script
Crea un script que monitoree el acceso a los archivos y los elimine después de ser descargados.
sudo nano /home/sftpuser/delete_after_download.sh
Añade el siguiente contenido al script:
#!/bin/bash
inotifywait -m -e close_write –format “%w%f” /home/sftpuser/uploads | while read FILE
do
if [ -f “$FILE” ]; then
rm “$FILE”
echo “Deleted $FILE after download”
fi
done
Este script utiliza inotifywait para monitorear la carpeta y eliminar los archivos después de que se cierran (lo que ocurre cuando la descarga se completa).
Paso 2: Dar Permisos de Ejecución al Script
sudo chmod +x /home/sftpuser/delete_after_download.sh
Paso 3: Ejecutar el Script al Inicio
Puedes agregar este script a la configuración de inicio del sistema para que se ejecute automáticamente:
sudo crontab -e
Añade la siguiente línea al final del archivo crontab:
@reboot /home/sftpuser/delete_after_download.sh &
3. Probar la Configuración:
Una vez que todo esté configurado, intenta subir un archivo y luego descargarlo usando SFTP. El archivo debería eliminarse automáticamente después de la descarga.
Esto debería darte un servidor SFTP funcional con la capacidad de eliminar archivos automáticamente después de ser descargados.