---
title: Ftp Training
tags: smx, asix, ftp
description: View the slide with "Slide Mode".
slideOptions:
spotlight:
enabled: true
---
# ftp training
[TOC]
# atenció a la configuració del server
## TLSOptions
```bash=
TLSOptions AllowClientRenegotiations NoSessionReuseRequired
```
# accés no interactiu a servidors ftp
## curl (ús puntual)
### descàrrega (download)
```bash=
curl -O --user ubuntu --ftp-ssl ftp://demo05.test/public_html/index.html
```
### càrrega
```bash=
curl -T /tmp/dades.txt ftp://ubuntu:ubuntu@ftpserver -k --ftp-ssl
curl -u test01:c0ntr@sseny@01 --upload-file /tmp/test.txt ftp://ftpserver/dades02.txt
```
## rclone (ús intensiu)
https://rclone.org/
*Rclone permet definir **"remots"** (accessos a serveis remots, com ara ftp/ftpes/s3/dropbox/google drive/...) i efectuar operacions sobre aquests remots (al invocar-los cal posar ":" darrere del nom del remot)*
### instal·lació
(comprova que siga l'última versió)
```bash=
wget https://downloads.rclone.org/v1.61.1/rclone-v1.61.1-linux-amd64.deb && sudo dpkg -i rclone-v1.61.1-linux-amd64.deb
```
### configuració
```bash=
rclone config
```
### ús rclone
Sincronitzat entre local i remot (o el contrari també)
:warning: Alerta: esborra els fitxers no existents en el destí (al final de l'execució tindràs només el contingut de l'origen en el destí)
```bash=
rclone sync web/avana remot-ftp:public_html
```
### altres
El "muntat" de sistemes remots permet entre d'altres la comparació de fitxers amb diff o l'edició de fitxers remots amb vi (no seria la manera més elegant (ni sistemàtica, ni segura) d'operar però ahí està l'opció per a una "emergència")
```bash=
rclone mount ftpmountdir remot-ftp:public_html
```
## lftp
(reemplaçat per rclone. Motiu: no mantingut des de 2020)
# accés amb comptes virtuals (via fitxer)
## crear el fitxer de configuració virtual_users.conf
```bash=
### --
## -- fitxer de configuracio (virtual_users.conf a /etc/proftpd/conf.d )
### --
# no permetre que els comptes retrocedesquen ("pugen") en l'arbre de directoris
DefaultRoot ~
RequireValidShell off
# fitxer associat per als comptes virtuals
AuthUserFile /etc/proftpd/ftpd.passwd
# no crearem grups per compartir info entre els comptes virtuals
## AuthGroupFile /etc/proftpd/ftpd.group
# Sols permetre l'acces amb comptes virtuals
AuthOrder mod_auth_file.c
# si vulguerem que tambe els comptes del sistema ho feren...
## AuthOrder mod_auth_file.c mod_auth_unix.c
```
## creació del compte i directori
### opció manual
#### crear el fitxer de passwords
```bash=
echo 'c0ntr@sseny@02' | sudo ftpasswd --stdin --passwd --file=/etc/proftpd/ftpd.passwd --name=test02 --uid=15002 --gid=15002 --home=/home/proftpd/test02 --shell=/bin/false
```
#### crear el directori personal
```bash=
sudo mkdir -m 700 -p /home/proftpd/test02
sudo chown 15002 /home/proftpd/test02
```
### opció semi-automàtica
(aprofitem la creació de comptes del sistema)
```bash=
# crear el compte
sudo useradd -u 15007 -b /home/proftpd -m -s /bin/false test07
#esborrar-lo (conservant el directory: no porta el "-r")
sudo userdel test07
# crear el compte virtual
echo 'c0ntr@sseny@07' | sudo ftpasswd --stdin --passwd --file=/etc/proftpd/ftpd.passwd --name=test07 --uid=15007 --gid=15007 --home=/home/proftpd/test07 --shell=/bin/false
```