---
# System prepended metadata

title: Ftp Training
tags: [smx, ' asix', ' ftp']

---

---
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
```