Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions docs/books/index.it.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
---
title: Books Home
author: Steven Spencer
contributors: @fromoz
title: Home Libri
author: Spencer Steven
contributors: '@fromoz, Franco Colussi'
---
# Libri didattici su Rocky Linux

# Rocky Linux Libri Didattici

Hai trovato la sezione **Libri** della documentazione. È qui che viene mantenuta la documentazione più dettagliata. Questi documenti sono suddivisi in sezioni o "capitoli" per facilitarti la consultazione attraverso di essi, al tuo ritmo e tenendo traccia dei tuoi progressi. Questi documenti sono stati creati da persone come te, con una passione per determinati argomenti.

Vuoi provare di tua mano a scrivere un'aggiunta a questa sezione? È FANTASTICO! Semplicemente unisciti alla conversazione sul [Mattermost Documentation channel](https://chat.rockylinux.org/rocky-linux/channels/documentation) e ti aiuteremo a trovare la tua strada.
Vuoi provare di tua mano a scrivere un'aggiunta a questa sezione? È FANTASTICO! Unisciti alla conversazione sul canale [Mattermost Documentation](https://chat.rockylinux.org/rocky-linux/channels/documentation) e ti aiuteremo sulla tua strada.
2 changes: 1 addition & 1 deletion docs/books/learning_rsync/01_rsync_overview.it.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Su un server, ho eseguito il backup della prima partizione nella seconda partizi

Alcune persone diranno, non posso usare il comando `tar` o `cp` sul primo server e inviarlo al secondo server tramite `scp` o `sftp`?

In un ambiente di produzione, la quantità di dati è relativamente elevata. Prima di tutto, `tar` o `cp` consuma molto tempo e occupa le prestazioni del sistema. La trasmissione tramite `scp` o `sftp` occupa anche un sacco di larghezza di banda di rete, che non è consentito nell'ambiente di produzione reale. In secondo luogo, questi comandi o strumenti devono essere inseriti manualmente dall'amministratore e devono essere combinati con il crontab dell'attività pianificata. Tuttavia, il tempo impostato da crontab non è facile da cogliere, e non è opportuno eseguire il backup dei dati se il tempo è troppo breve o troppo lungo.
In un ambiente di produzione, la quantità di dati è relativamente elevata. Prima di tutto, `tar` o `cp` consumano molto tempo e occupano le prestazioni del sistema. La trasmissione tramite `scp` o `sftp` occupa anche un sacco di larghezza di banda di rete, che non è consentito nell'ambiente di produzione reale. In secondo luogo, questi comandi o strumenti devono essere inseriti manualmente dall'amministratore e devono essere combinati con il crontab dell'attività pianificata. Tuttavia, il tempo impostato da crontab non è facile da cogliere, e non è opportuno eseguire il backup dei dati se il tempo è troppo breve o troppo lungo.

Pertanto, è necessario un backup dei dati nell'ambiente di produzione che deve soddisfare i seguenti requisiti:

Expand Down
144 changes: 144 additions & 0 deletions docs/books/learning_rsync/02_rsync_demo01.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
---
title: rsync demo 01
author: tianci li
contributors: Steven Spencer, Franco Colussi
update: 2021-12-25
---

# Premessa

`rsync` deve eseguire l'autenticazione dell'utente prima della sincronizzazione dei dati. **Ci sono due metodi di protocollo per l'autenticazione: protocollo SSH e protocollo rsync (la porta predefinita del protocollo rsync è la 873)**

* Metodo di verifica del protocollo SSH: usa il protocollo SSH come base per l'autenticazione dell'identità utente (cioè, utilizza l'utente del sistema e la password di GNU/Linux stesso per la verifica), e quindi esegue la sincronizzazione dei dati.
* metodo di verifica del protocollo rsync login: usa il protocollo rsync per l'autenticazione dell'identità utente (utenti di sistema non GNU/Linux, simili agli utenti virtuali vsftpd), e quindi esegue la sincronizzazione dei dati.

Prima della dimostrazione specifica della sincronizzazione rsync, è necessario utilizzare il comando `rsync`. In Rocky Linux 8, il pacchetto rpm rsync è installato per impostazione predefinita, e la versione è la 3.1.3-12, come segue:

```bash
[root@Rocky ~]# rpm -qa|grep rsync
rsync-3.1.3-12.el8.x86_64
```

```txt
Basic format: rsync [options] original location target location
Commonly used options:
-a: archive mode, recursive and preserves the attributes of the file object, which is equivalent to -rlptgoD (without -H, -A, -X)
-v: Display detailed information about the synchronization process
-z: compress when transferring files
-H: Keep hard link files
-A: retain ACL permissions
-X: retain chattr permissions
-r: Recursive mode, including all files in the directory and subdirectories
-l: still reserved for symbolic link files
-p: Permission to retain file attributes
-t: time to retain file attributes
-g: retain the group belonging to the file attribute (only for super users)
-o: retain the owner of the file attributes (only for super users)
-D: Keep device files and other special files
```

Uso personale dell'autore: `rsync -avz posizione originale posizione di destinazione`

## Descrizione dell'Ambiente

| Elemento | Descrizione |
| --------------------- | ---------------- |
| Rocky Linux 8(Server) | 192.168.100.4/24 |
| Fedora 34(client) | 192.168.100.5/24 |

È possibile utilizzare Fedora 34 per caricare e scaricare

```mermaid
graph LR;
RockyLinux8-->|pull/download|Fedora34;
Fedora34-->|push/upload|RockyLinux8;
```

È inoltre possibile utilizzare Rocky Linux 8 per caricare e scaricare

```mermaid
graph LR;
RockyLinux8-->|push/upload|Fedora34;
Fedora34-->|pull/download|RockyLinux8;
```

## Dimostrazione basata sul protocollo SSH

!!! tip "Attenzione!" Qui, sia Rocky Linux 8 che Fedora 34 utilizzano l'utente root per accedere. Fedora 34 è il client e Rocky Linux 8 è il server.

### pull/scarica

Dato che si basa sul protocollo SSH, creiamo prima un utente nel server:

```bash
[root@Rocky ~]# useradd testrsync
[root@Rocky ~]# passwd testrsync
```

Sul lato client, lo tiriamo/scarichiamo e il file sul server è /rsync/aabbcc

```bash
[root@fedora ~]# rsync -avz testrsync@192.168.100.4:/rsync/aabbcc /root
testrsync@192.168.100.4 ' s password:
receiving incremental file list
aabbcc
sent 43 bytes received 85 bytes 51.20 bytes/sec
total size is 0 speedup is 0.00
[root@fedora ~]# cd
[root@fedora ~]# ls
aabbcc
```
Trasferimento effettuato con successo.

!!! tip "Attenzione" Se la porta SSH del server non è quella predefinita 22, puoi specificare la porta in questo modo---`rsync -avz -e 'ssh -p [port]'`.

### push/carica

```bash
[root@fedora ~]# touch fedora
[root@fedora ~]# rsync -avz /root/* testrsync@192.168.100.4:/rsync/
testrsync@192.168.100.4 ' s password:
sending incremental file list
anaconda-ks.cfg
fedora
rsync: mkstemp " /rsync/.anaconda-ks.cfg.KWf7JF " failed: Permission denied (13)
rsync: mkstemp " /rsync/.fedora.fL3zPC " failed: Permission denied (13)
sent 760 bytes received 211 bytes 277.43 bytes/sec
total size is 883 speedup is 0.91
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender = 3.2.3]
```

**Richiesta di autorizzazione negata, come gestirla?**

Prima controlla i permessi della directory /rsync/. Ovviamente, non c'è alcun permesso "w". Possiamo utilizzare `setfacl` per dare il permesso:

```bash
[root@Rocky ~ ] # ls -ld /rsync/
drwxr-xr-x 2 root root 4096 November 2 15:05 /rsync/
```

```bash
[root@Rocky ~ ] # setfacl -mu:testrsync:rwx /rsync/
[root@Rocky ~ ] # getfacl /rsync/
getfacl: Removing leading ' / ' from absolute path names
# file: rsync/
# owner: root
# group: root
user::rwx
user:testrsync:rwx
group::rx
mask::rwx
other::rx
```

Prova di nuovo, successo!

```bash
[root@fedora ~ ] # rsync -avz /root/* testrsync@192.168.100.4:/rsync/
testrsync@192.168.100.4 ' s password:
sending incremental file list
anaconda-ks.cfg
fedora
sent 760 bytes received 54 bytes 180.89 bytes/sec
total size is 883 speedup is 1.08
```
127 changes: 127 additions & 0 deletions docs/books/learning_rsync/03_rsync_demo02.it.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
title: rsync demo 02
author: tianci li
contributors: Steven Spencer, Franco Colussi
update: 2021-12-25
---

# Dimostrazione basata sul protocollo rsync
In vsftpd, ci sono utenti virtuali (utenti impersonali personalizzati dall'amministratore) perché non è sicuro usare utenti anonimi e utenti locali. Sappiamo che un server basato sul protocollo SSH deve garantire che ci sia un sistema di utenti. Quando ci sono molti requisiti di sincronizzazione, può essere necessario creare molti utenti. Questo ovviamente non soddisfa gli standard di gestione e manutenzione GNU/Linux (più utenti, più insicuro), in rsync, per motivi di sicurezza, c'è un metodo di autenticazione il protocollo rsync.

**Come si fa?**

Basta scrivere i parametri e i valori corrispondenti nel file di configurazione. In Rocky Linux 8, è necessario creare manualmente il file <font color=red>/etc/rsyncd.conf</font>.

```bash
[root@Rocky ~]# touch /etc/rsyncd.conf
[root@Rocky ~]# vim /etc/rsyncd.conf
```

Alcuni parametri e valori di questo file sono i seguenti, [ qui ](04_rsync_configure.md) ci sono più descrizioni dei parametri:

| Elemento | Descrizione |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| address = 192.168.100.4 | L'indirizzo IP dove rsync è in ascolto di default |
| port = 873 | porta rsync di ascolto predefinita |
| pid file = /var/run/rsyncd.pid | Posizione del file del pid del processo |
| log file = /var/log/rsyncd.log | Posizione del file del registro |
| [share] | Nome condiviso |
| comment = rsync | Osservazioni e informazioni sulla descrizione |
| path = /rsync/ | Posizione del percorso di sistema in cui si trova |
| read only = yes | sì significa solo leggere, non leggere e scrivere |
| dont compress = \*.gz \*.gz2 \*.zip | Quali tipi di file non comprimere |
| auth users = li | Abilita gli utenti virtuali e definisci come viene chiamato un utente virtuale. Devi crearlo da solo |
| secrets file = /etc/rsyncd_users.db | Usato per specificare la posizione del file password dell'utente virtuale, che deve terminare in .db. Il formato del contenuto del file è "Nome utente: Password", uno per riga |

!!! tip "Attenzione!" Il permesso del file password deve essere <font color=red>600</font>

Scrivi il contenuto del file su <font color=red>/etc/rsyncd.conf</font>e scrivi il nome utente e la password su /etc/rsyncd_users.db, il permesso è 600

```bash
[root@Rocky ~]# cat /etc/rsyncd.conf
address = 192.168.100.4
port = 873
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
[share]
comment = rsync
path = /rsync/
read only = yes
dont compress = *.gz *.bz2 *.zip
auth users = li
secrets file = /etc/rsyncd_users.db
[root@Rocky ~]# ll /etc/rsyncd_users.db
-rw------- 1 root root 9 November 2 16:16 /etc/rsyncd_users.db
[root@Rocky ~]# cat /etc/rsyncd_users.db
li:13579
```

Potrebbe essere necessario `dnf -y install rsync-daemon` prima di poter avviare il servizio: `systemctl start rsyncd.service`

```bash
[root@Rocky ~]# systemctl start rsyncd.service
[root@Rocky ~]# netstat -tulnp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 691/sshd
tcp 0 0 192.168.100.4:873 0.0.0.0:* LISTEN 4607/rsync
tcp6 0 0 :::22 :::* LISTEN 691/sshd
udp 0 0 127.0.0.1:323 0.0.0.0:* 671/chronyd
udp6 0 0 ::1:323 :::* 671/chronyd
```

## pull/scarica

Crea un file nel server per la verifica: `[root@Rocky]# touch /rsync/rsynctest.txt`

Il client fa quanto segue:

```bash
[root@fedora ~]# rsync -avz li@192.168.100.4::share /root
Password:
receiving incremental file list
./
rsynctest.txt
sent 52 bytes received 195 bytes 7.16 bytes/sec
total size is 883 speedup is 3.57
[root@fedora ~]# ls
aabbcc anaconda-ks.cfg fedora rsynctest.txt
```

successo! Oltre alla scrittura precedente basata sul protocollo rsync, puoi anche scrivere così: `rsync://li@10.1.2.84/share`

## push/carica

```bash
[root@fedora ~]# touch /root/fedora.txt
[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share
Password:
sending incremental file list
rsync: [sender] read error: Connection reset by peer (104)
rsync error: error in socket IO (code 10) at io.c(784) [sender = 3.2.3]
```

Vieni informato che l'errore di lettura è relativo al "read only = yes" del server. Cambialo in "no" e riavvia il servizio `[root@Rocky ~]# systemctl restart rsyncd.service`

Prova di nuovo, ti viene negato il permesso:

```bash
[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share
Password:
sending incremental file list
fedora.txt
rsync: mkstemp " /.fedora.txt.hxzBIQ " (in share) failed: Permission denied (13)
sent 206 bytes received 118 bytes 92.57 bytes/sec
total size is 883 speedup is 2.73
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender = 3.2.3]
```

Il nostro utente virtuale qui è <font color=red>li</font>, che viene mappato all'utente di sistema <font color=red>nobody</font> per impostazione predefinita. Naturalmente, è possibile cambiarlo in altri utenti del sistema. In altre parole, nobody non ha il permesso di scrittura nella directory /rsync/. Naturalmente, possiamo usare `[root@Rocky ~]# setfacl -mu:nobody:rwx /rsync/` , riprovare, e avere successo.

```bash
[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share
Password:
sending incremental file list
fedora.txt
sent 206 bytes received 35 bytes 96.40 bytes/sec
total size is 883 speedup is 3.66
```
Loading