6
août
2020
10:36

Transférer des fichiers volumineux d'un smartphone vers un PC exécutant Linux

6 août 2020 10:36

Tâche : télécharger des photos via Wi-Fi depuis un smartphone vers un ordinateur personnel exécutant Linux.

Malheureusement, la solution de transfert de fichiers à l'aide du programme ShareIt ne convient pas - il n'y a pas de client pour Linux, il n'y a que l'émulation.
Je n'ai pas envisagé l'option avec les « clouds » (disk.yandex.ru, Google Drive, Mail.ru Cloud) en raison des frais généraux - transfert vers un serveur tiers via Internet, puis téléchargement à partir de celui-ci. Le Bluetooth ne fonctionne pas – trop lent. J'ai choisi l'option éprouvée avec un serveur FTP sur un ordinateur personnel.

Procédure :

  1. je l'ai récupéré sur l'ordinateur Profil du serveur FTP:

sudo apt-get install proftpd

Modification du fichier de configuration ProFTPd comme suit :

sudo nano /etc/proftpd.conf

Include /etc/proftpd/modules.conf
UseIPv6 off
IdentLookups off
ServerName "mon_nom_ordinateur"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks off
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"

DefaultRoot /home/vladimir/ftp # nom du répertoire racine FTP

<Directory /home/vladimir/ftp> # Répertoire racine FTP
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
DenyAll
</Limit>
</Directory>

<Directory> /home/vladimir/ftp/upload/> # Sous-répertoire «upload» - pour écrire, lire, supprimer
Umask 022 022
AllowOverwrite on
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
AllowAll
</Limit>
</Directory>

AllowStoreRestart on

Port 21 # port standard, mais vous pouvez le remplacer par le vôtre.

<IfModule mod_dynmasq.c>
</IfModule>

MaxInstances 8
User proftpd
Group nogroup
Umask 022 022
AllowOverwrite on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>

<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2

ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

<Limit LOGIN>
AllowUser vladimir2 # Connexion FTP autorisée
DenyALL # L'entrée est interdite aux autres
</Limit>

UserAlias ftp vladimir2 # Connexion FTP avec l'utilisateur vladimir2

Include /etc/proftpd/conf.d/

  • a également modifié le fichier shells, ajouté nologin
    Lors de l'exécution sudo nano /etc/shells ajouté la dernière ligne

    # /etc/shells: valid login shells
    /bin/sh
    /bin/dash
    /bin/bash
    /bin/rbash
    /usr/sbin/nologin

  • mot de passe utilisateur FTP modifié :

    sudo passwd ftp

  • vérifié la configuration du service :

    sudo /etc/init.d/proftpd check-config

  • démarré le service proftpd :

    sudo /etc/init.d/proftpd start

  • vérifié auprès du client que la connexion au serveur fonctionne :

    ftp mon_adresse IP

nom d'utilisateur saisi FTP" et le mot de passe de l'utilisateur FTP, entré dans le répertoire - tout est en ordre.

    1. Installé sur un téléphone Android Gestionnaire de fichiers sur Google PlayMarket :Gestionnaire de fichiers.
      Un autre client FTP puissant -EtFTP
  1. les deux appareils - le PC et le smartphone sont connectés au même réseau local (via Wi-Fi ou filaire - peu importe).
  2. Connecté depuis un smartphone via le « Gestionnaire de fichiers » - l'icône « Services à distance » vers le serveur FTP en utilisant son adresse IP (identifiant et mot de passe saisis) et transférez les fichiers sur l'ordinateur.

Téléchargement de fichiers depuis un PC et non un téléphone (ajouté le 10/01/2021) :

Si vous activez les restrictions dans le fichier de configuration, vous ne pourrez pas transférer de fichiers de votre PC vers votre smartphone.
La restriction de lecture et de suppression de fichiers du dossier « télécharger » sur FTP est la suivante :

<Directory /home/vladimir/ftp/upload/>

<Limit READ DELE>
DenyAll
</Limit>

Au début, j'ai utilisé ces directives, puis je les ai supprimées du fichier proftpd.conf, car Il est souvent nécessaire de télécharger depuis un PC vers un téléphone. Le téléchargement et le téléchargement vers FTP fonctionnent désormais.

Résolution des problèmes d'accès - ajout du 10/04/2021

Après la connexion via FTP, il n'est pas possible de créer un fichier ou un répertoire sur le serveur FTP

J'ai rencontré ce problème sur le système d'exploitation Sparky Linux (variante Debian).

Symptômes :
Sur un PC Debian, après connexion à un serveur FTP depuis un smartphone, ni un fichier ni un répertoire ne peuvent être créés pour télécharger des fichiers du smartphone vers le PC. Dans ce cas, le client FTP écrit une erreur sur l'écran « Accès refusé » ou « Fichier non trouvé ».

Principales erreurs et solutions aux problèmes :
1.Problèmes avec les chemins

  • Vérifiez que les chemins du fichier proftpd.conf vers le répertoire "public" ou "upload" correspondent aux chemins réels et aux noms de dossiers sur l'ordinateur de l'utilisateur (par exemple,/home/vladimir/ftp/upload etc).

2.Droits d'accès incorrects (pas de droits d'écriture ou de création)

  • Exécutez la commande dans la console :

    sudo chmod -R 0775 /home/user/ftp

user- le nom du dossier de travail du compte utilisateur. Cette commande signifie que le propriétaire et le groupe auquel il appartient peuvent lire, écrire et exécuter des fichiers dans les répertoires FTP.

3.Affectation du "Propriétaire" du répertoire
Le problème se produit sur le système d'exploitation Debian.

  • Exécutez la commande dans le terminal :

    sudo chown -R ftp:users /home/user/ftp

où ftp est le compte sous lequel proftpd s'exécute, users est le groupe « tous les utilisateurs ».

ou, pour une restriction plus forte des droits :

sudo chown -R user:user /home/user/ftp

Remarque: propriétaire par défaut user:user
user- Votre nom d'utilisateur et votre groupe.

Une erreur se produit lors de l'exécution de proftpd sur Debian avec un fichier de configuration d'Ubuntu

Vous devez supprimer la ligne dans le fichier de configuration (sudo nano /etc/proftpd.conf) :
IdentLookups off

Problèmes avec le service proftpd dans Linux Mint 21 "Vanessa" et leur solution (23/08/2022)

Lors du passage à Linux Mint 21 "Vanessa", le premier problème est survenu : le programme d'installation pointait vers le package "proftpd" qui était incompatible avec Mint 21.
J'ai été obligé de le supprimer avant la mise à jour en utilisant "mint-update"  :

sudo apt-get remove proftpd

Après être passé avec succès à LM 22, j'ai essayé d'installer le programme, mais un deuxième problème est apparu - les erreurs d'installation de proftpd :

fatal: LoadModule: error loading module 'mod_tls.c'

Solution :

sudo nano /etc/proftpd/modules.conf

Commenter de nombreux modules. Je n'ai laissé que quelques morceaux. Voici le fichier modules.conf après avoir désactivé les lignes qu'il contient :

ModulePath /usr/lib/proftpd
ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *
LoadModule mod_ctrls_admin.c
LoadModule mod_load.c
LoadModule mod_dynmasq.c
LoadModule mod_exec.c
LoadModule mod_ratio.c
LoadModule mod_site_misc.c
LoadModule mod_facl.c
LoadModule mod_unique_id.c
LoadModule mod_copy.c
LoadModule mod_deflate.c
LoadModule mod_ifversion.c
LoadModule mod_ifsession.c

Ensuite, dans le fichier de configuration principal, prpftpd a commenté la ligne appelée « IdentLookups » :

sudo nano /etc/proftpd/proftpd.conf

# If set on you can experience a longer connection delay in many cases.
#IdentLookups off

La touche finale - suppression du masque systemd du service proftpd

sudo systemctl unmask proftpd.service

L'installation du service s'est désormais déroulée sans problème :

sudo apt-get install proftpd

Activation et démarrage du service proftpd également sans « incidents » :

systemctl enable proftpd.service
systemctl start proftpd.service
systemctl status proftpd.service

J'ai suivi les erreurs survenues à l'aide de la commande journalctl -xeu :

journalctl -xeu proftpd.service

Conclusion : le transfert de données d'un smartphone vers un PC à l'aide de proftpd fonctionne également sous Linux Mint 22.

Vérifier - connexion depuis un smartphone à l'aide du programme "Gestionnaire de fichiers+"- À distance - FTP vers l'adresse IP d'un PC avec un nom d'utilisateur et un mot de passe connus est terminé. Le répertoire a été lu et les fichiers ont été transférés.


Liens :



Publications connexes