Progetto

Generale

Profilo

BaculaBackup » Cronologia » Versione 33

Simone Piccardi, 22-12-2010 15:56

1 28 Amministratore Truelite
h1. Backup con Bacula
2 1 Amministratore Truelite
3 28 Amministratore Truelite
4
"Bacula":http://www.bacula.org/ è un potente sistema che consente la centralizzazione dei backup di varie macchine all'interno di una rete, e la gestione automatica degli stessi.
5
6 1 Amministratore Truelite
L'architettura di bacula è composta da tre componenti principali:
7
8 28 Amministratore Truelite
* il _File Daemon_, che va installato sulle macchine di cui si vuole effettuare il backup ed ha il compito di gestire i file di cui deve essere eseguito il backup.
9
* lo _Storage Daemon_ che va installato sulla macchina su cui è presente il dispositivo di registrazione dei dati (nastro, disco o quant'altro).
10
* il _Director_ che va installato su una macchina qualsiasi (ma in genere si usa quella dove sta il dispositivo di backup) e che è il servizio che controlla tutti gli altri e gestisce i backup.
11 14 Amministratore Truelite
12 1 Amministratore Truelite
Ciascuno di questi tre servizi ha un suo script di avvio ed un suo file di configurazione, come illustrato nella seguente tabella:
13
14 31 Simone Piccardi
|_.Servizio|_.File di configurazione|_.Script di avvio|
15 29 Simone Piccardi
|File Daemon|@bacula-fd.conf@|bacula-fd|
16 31 Simone Piccardi
|Storage Daemon|@bacula-sd.conf@|bacula-sd|
17 30 Simone Piccardi
|Director|@bacula-dir.conf@|bacula-director|
18 1 Amministratore Truelite
19 22 Amministratore Truelite
a questi si aggiuinge poi la console di comando, @bconsole@. 
20 1 Amministratore Truelite
21 22 Amministratore Truelite
h2. Installazione e configurazione
22 28 Amministratore Truelite
23 31 Simone Piccardi
Tratteremo dell'installazione e della configurazione di base con Debian Lenny. Una delle caratteristiche di "Bacula":http://www.bacula.org/ è quella di salvare su un database il suo stato, mantenendo quello che viene chiamato dal programma stesso il _catalogo_. Il programma supporta tre tipi di database, _MySQL_, _PostgreSQL_ e _SQLite_. Dato che la versione ufficiale di Debian Lenny non aveva abilitato (per questioni di licenza con OpenSSL) il supporto per le connessioni cifrate, useremo la versione ottenuta da backports (la 5.0.2 al momento della ultima revisione di queste note) che usa _GnuTLS_. 
24 28 Amministratore Truelite
25 31 Simone Piccardi
Per installare il necessario sul server di backup occorre anzitutto inserire la seguente riga in @/etc/apt/sources.list@: 
26 28 Amministratore Truelite
27 1 Amministratore Truelite
<pre>
28 28 Amministratore Truelite
deb http://www.backports.org/debian lenny-backports main contrib
29
</pre>
30 31 Simone Piccardi
31 1 Amministratore Truelite
e poi installare la versione per il database scelto con:
32 31 Simone Piccardi
33 1 Amministratore Truelite
<pre>
34 23 Amministratore Truelite
apt-get install bacula-director-sqlite3 bacula-sd bacula-fd
35 22 Amministratore Truelite
</pre>
36 1 Amministratore Truelite
37
h2. Configurazione con SSL
38
39 31 Simone Piccardi
Con la versione 1.38 _Bacula _ha il supporto nativo per l'uso di SSL per il trasferimento dei dati. In precedenza era necessario impostare gli opportuni tunnel SSL con @stunnel@, in questo caso la cosa si semplifica leggermente. In caso di presenza di un firewall occorre comunque ricordare che la struttura di Bacula prevede che il _File Daemon_ deve poter contattare lo _Storage Daemon_ ed occorrerà pertanto prevedere gli opportuni _"pin-holes"_ per eventuali accessi dai server esterni o dalla DMZ (si presuppone ovviamente che il server di backup sia nella rete interna).
40 28 Amministratore Truelite
41 31 Simone Piccardi
Il primo passo è quello di procurarsi i certificati necessari, questi andranno anzitutto installati sul Director per quanto riguarda tutti i vari servizi: il _Director_ stesso, che viene contattato dalla console, ed il _File Daemon_, che viene contattato dai vari File Daemon. Occorre allora anzitutto configurare l'accesso al Director definendo la relativa voce in @bacula-dir.conf@:
42 28 Amministratore Truelite
43
<pre>
44 22 Amministratore Truelite
Director {                            # define myself
45
  Name = backup1-dir
46
  DIRport = 9101                # where we listen for UA connections
47 31 Simone Piccardi
  QueryFile]] = "/etc/bacula/scripts/query.sql"
48
  WorkingDirectory = "/var/lib/bacula"
49
  PidDirectory = "/var/run/bacula"
50 28 Amministratore Truelite
  Maximum Concurrent Jobs = 1
51 22 Amministratore Truelite
  Password = "xxx"         # Console password (lunga e complicata)
52 1 Amministratore Truelite
  Messages = Daemon
53 23 Amministratore Truelite
  TLS Enable = yes
54 1 Amministratore Truelite
  TLS Require = yes
55 23 Amministratore Truelite
  TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem
56 1 Amministratore Truelite
  TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem
57
  TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem
58
  TLS Verify Peer = yes
59
  TLS DH File = /etc/bacula/dh1024.pem
60
}
61 28 Amministratore Truelite
</pre>
62 23 Amministratore Truelite
63 31 Simone Piccardi
in questo caso le varie direttive servono a dichiarare chiave e certificato SSL usato dal _Director_, ed indicare la CA con cui vengono verificati le connessioni dai client verso il _Director_. Devono poi essere configurate le modalità di accesso SSL client del _Director_ verso gli altri servizi indicando con quali certificato e chiave ci si vuole collegare ad essi (nel caso useremo sempre gli stessi). In particolare per le varie voci rispetto alla configurazione installata di default si dovranno inserire delle configurazioni del tipo:
64 23 Amministratore Truelite
65 28 Amministratore Truelite
<pre>
66 1 Amministratore Truelite
Client {
67
...
68 23 Amministratore Truelite
  TLS Enable = yes
69
  TLS Require = yes
70
  TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem
71 1 Amministratore Truelite
  TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem
72
  TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem
73
}
74 23 Amministratore Truelite
...
75
...
76
Storage {
77
...
78 1 Amministratore Truelite
  TLS Enable = yes
79
  TLS Require = yes
80 23 Amministratore Truelite
  TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem
81 1 Amministratore Truelite
  TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem
82
  TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem
83
}
84
</pre>
85
86 31 Simone Piccardi
per ciascuna istanza di un _File Daemon_ (@Client@) o di uno _Storage Daemon_ (@Storage@).
87
88
Una volta configurato il _Director_ occorrerrà fare altrettanto per gli altri servizi, e sempre, qualora questo sia previsto (la cosa vale per il _File Daemon_) per le due direzioni, quella in cui il singolo servizio può essere contattato e quella in cui il servizio contatta un altro servizio. Si avranno pertanto in @bacula-sd.conf@ configurazioni del tipo: 
89
90 1 Amministratore Truelite
<pre>
91 28 Amministratore Truelite
Storage {
92
...
93 1 Amministratore Truelite
  TLS Enable = yes
94
  TLS Require = yes
95
  TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem
96 23 Amministratore Truelite
  TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem
97
  TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem
98 1 Amministratore Truelite
}
99 23 Amministratore Truelite
</pre>
100 31 Simone Piccardi
101 1 Amministratore Truelite
per definire il certificato usato per le connessioni allo _Storage Daemon_, mentre per le connessioni effettuate verso l'esterno (in questo caso solo il _Director_ per rispondere ad interrogazioni dalla console) si dovrà mettere qualcosa del tipo:
102 31 Simone Piccardi
103 1 Amministratore Truelite
<pre>
104
Director {
105 23 Amministratore Truelite
...
106
  TLS Enable = yes
107
  TLS Require = yes
108
  TLS CA Certificate File = /etc/ssl/certs/Truelite-cacert.pem
109
  TLS Certificate = /etc/ssl/certs/bacula.fi.trl-cert.pem
110
  TLS Key = /etc/ssl/private/bacula.fi.trl-key.pem
111
  TLS Verify Peer = yes
112
  TLS Allowed CN = "bacula.fi.trl"
113 1 Amministratore Truelite
}
114
</pre>
115
116 31 Simone Piccardi
dove si richiede anche la verifica del certificato e che questo abbia uno specifico _Common Name_. La stessa configurazione si ritroverà sostanzialmente identica anche in @bacula-fd.conf@ (con @FileDaemon@ al posto di @Storage@). 
117 11 Amministratore Truelite
118 1 Amministratore Truelite
h2. Uso dell'autochanger
119
120 31 Simone Piccardi
Perché sia possibile utilizzare un dispositivo cambianastri (quello che in gergo viene chiamato _Autochanger_), deve essere disponibile e funzionante lo script @/etc/bacula/scripts/mtx-changer@.
121 1 Amministratore Truelite
122 31 Simone Piccardi
Normalmente i dispositivi cambianastri sono pilotati direttamente attraverso l'interfaccia SCSI, utilizzando il dispositivo generico (se avete solo il nastro SCSI questo sarà @/dev/sg0@, in generale va verificato). Per inviare i comandi viene usato un programma apposito, @mtx@, cui lo script installato di default si appoggia. Esistono però anche cambianastri pilotati con modalità diverse, nel qual caso occorrerà uno script dedicato, un esempio per un _IBM Ultrium LTO 3581 L28_, che viene comandato via @telnet@, è allegato alla pagina.
123 28 Amministratore Truelite
124 31 Simone Piccardi
Per poter utilizzare il cambianastri si deve anzitutto segnalarne la presenza nella sezione Device del file @bacula-sd.conf@, ed indicare il file di dispositivo da usare, un possibile esempio è il seguente: 
125 28 Amministratore Truelite
126
<pre>
127 1 Amministratore Truelite
Device {
128
  Name = DDS-4                        #
129 28 Amministratore Truelite
  Media Type = DDS-4
130 1 Amministratore Truelite
  Archive Device = /dev/nst0
131 31 Simone Piccardi
  AutomaticMount = yes;               # when device opened, read it
132
  AlwaysOpen = yes;
133
  RemovableMedia = yes;
134
  RandomAccess = no;
135 28 Amministratore Truelite
  Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d"
136
  Changer Device = /dev/sg1
137 31 Simone Piccardi
  AutoChanger = yes
138
  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
139 1 Amministratore Truelite
}
140 28 Amministratore Truelite
</pre>
141 31 Simone Piccardi
142
inoltre deve essere reso noto al _Director_ che lo storage supporta l'_autochanger_; questo si fa con una analoga riga @AutoChanger = yes@ nella sua configurazione; cioè si dovrà avere dentro @bacula-dir.conf@ qualcosa del tipo: 
143
144 28 Amministratore Truelite
<pre>
145
Storage {
146 10 Amministratore Truelite
  Name = File
147 1 Amministratore Truelite
  Address = bacula.truelite.it   # N.B. Use a fully qualified name here
148
  SDPort = 9103
149 14 Amministratore Truelite
  Password = "xxxxxxx"
150 1 Amministratore Truelite
  Device = DDS-4
151
  Media Type = DDS-4
152
  Autochanger = yes
153
}
154 28 Amministratore Truelite
</pre>
155
156 31 Simone Piccardi
Fatto questo diventa possibile usare l'attributo @slot@ nel comando @label@ da console. Con questo diventa possibile etichettare i vari nastri dell'autochanger con una serie di comandi del tipo: 
157
158 1 Amministratore Truelite
<pre>
159
*label slot=5
160
Using default Catalog name=MyCatalog DB=bacula
161
Automatically selected Storage: File
162
Enter new Volume name: Volume005
163
Automatically selected Pool: Default
164
Connecting to Storage daemon File at bacula.truelite.it:9103 ...
165
Sending label command for Volume "Volume005" Slot 5 ...
166
3301 Issuing autochanger "loaded drive 0" command.
167
3302 Autochanger "loaded drive 0", result is Slot 4.
168
3303 Issuing autochanger "unload slot 4, drive 0" command.
169
3304 Issuing autochanger "load slot 5, drive 0" command.
170
3305 Autochanger "load slot 5, drive 0", status is OK.
171
block.c:264 Volume data error at 0:0! Wanted ID: "BB02", got "". Buffer discarded.
172 11 Amministratore Truelite
3000 OK label. Volume=Volume005 Device=/dev/nst0
173
Catalog record for Volume "Volume005", Slot 5  successfully created.
174 15 Amministratore Truelite
Requesting to mount DDS-4 ...
175 28 Amministratore Truelite
3001 Device /dev/nst0 is mounted with Volume "Volume005"
176 15 Amministratore Truelite
</pre>
177 31 Simone Piccardi
178 28 Amministratore Truelite
da ripetere per tutti i nastri disponibili. 
179
180 1 Amministratore Truelite
Una volta inizializzati i vari nastri si può rendere noto al _Director_ la presenza dei vari nastri con il comando:
181 31 Simone Piccardi
182 1 Amministratore Truelite
<pre>
183
update slots scan
184
</pre>
185 28 Amministratore Truelite
186
h2. Come gestire manualmente i nastri
187
188 13 Amministratore Truelite
Per la rimozione dei dati presenti sui nastri si devono seguire i seguenti passi:
189 11 Amministratore Truelite
190 31 Simone Piccardi
* rimuovere i dati dal catalogo con @purge@, scegliendo il volume da cancellare,
191 33 Simone Piccardi
* inserire il nastro nel dispositivo, se si dispone dell'autochanger ed N è il numero dello slot questo si può fare con:
192 32 Simone Piccardi
193 28 Amministratore Truelite
<pre>
194 16 Amministratore Truelite
/etc/bacula/scripts/mtx-changer /dev/sg1 load N
195 31 Simone Piccardi
</pre> 
196
197
* cancellarne il contenuto a mano con @btape test@ o scrivendoci direttamente 
198
* usare @label@ per modificarne l'etichetta
199 1 Amministratore Truelite
200 28 Amministratore Truelite
Se invece si è configurato correttamente il periodo di ritenzione dei dati, sarà _Bacula_ che provvederà a cercare il primo nastro libero, posto che il periodo non sia eccessivo e lo spazio disponibile esaurito, 
201 1 Amministratore Truelite
202
Nel qual caso si potrà ridurre il periodo di ritenzione con il comando:
203 33 Simone Piccardi
204 1 Amministratore Truelite
<pre>
205 33 Simone Piccardi
update volume=VolumeXXX VolRetention=ddd
206 28 Amministratore Truelite
</pre>
207 1 Amministratore Truelite
208 33 Simone Piccardi
si tenga presente che cambiare il periodo di ritenzione direttamente dentro @bacula-dir.con@f non è sufficiente in quanto questi dati sono registrati all'interno del singolo volume e non cambiano fintanto che non se ne aggiorna il valore. 
209 1 Amministratore Truelite
210
h2. Cosa fare quando si esaurisce lo spazio disponibile
211 17 Amministratore Truelite
212 28 Amministratore Truelite
La maggiore forza di "Bacula":http://www.bacula.org/ è quella, una volta configurato correttamente, di essere in grado di gestire tutta la procedura di backup in maniera automatica. In genere questo funziona correttamente senza nessun intervento manuale. L'incidente più comune che può capitare è che si esaurisca lo spazio (disco o nastro) disponibile per i backup, nel qual caso il comportamento di "Bacula":http://www.bacula.org/ è quello di bloccare i backup rispettando i termini del periodo di ritenzione dei dati impostato. 
213
214 33 Simone Piccardi
Perciò se si desidera che i backup proseguano sovrascrivendo i vecchi dati occorrerà liberare lo spazio necessario. Questo dovrà essere fatto andando a rimuovere i dati più vecchi; per questo su può utilizzare il comando @purge@, ma occorrerà individuare opportunamente cosa rimuovere. Un esempio di utilizzo allora potrebbe essere il seguente; prima si potrà verificare lo stato dei volumi utilizzati con il comando: 
215
216 28 Amministratore Truelite
<pre>
217 18 Amministratore Truelite
*list volumes
218 16 Amministratore Truelite
Using default Catalog name=MyCatalog DB=bacula
219 1 Amministratore Truelite
Pool: Default
220 16 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
221 28 Amministratore Truelite
| [[MediaId]] | [[VolumeName]] | [[VolStatus]] | [[VolBytes]]    | [[VolFiles]] | [[VolRetention]] | Recycle | Slot | [[InChanger]] | [[MediaType]] | [[LastWritten]]         |
222 19 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
223 1 Amministratore Truelite
| 1       | Volume0013 | Full      | 13156318147 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-06 02:53:16 |
224
| 2       | Volume0014 | Full      | 15260956061 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-15 01:12:48 |
225
| 3       | Volume0015 | Full      | 10288088510 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-07-30 02:03:26 |
226 20 Amministratore Truelite
| 4       | Volume0016 | Full      | 28805889791 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-06 01:26:31 |
227
| 5       | Volume0017 | Full      | 14412428094 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-07-29 01:27:50 |
228 21 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
229 1 Amministratore Truelite
</pre>
230 33 Simone Piccardi
231 28 Amministratore Truelite
dopo di che, considerato che i dati più vecchi si trovano sul Volume0017, se potrà cancellare il contenuto con:
232 33 Simone Piccardi
233 28 Amministratore Truelite
<pre>
234 21 Amministratore Truelite
* purge volume=Volume0017
235
236
This command is can be DANGEROUS!!!
237
238 1 Amministratore Truelite
It purges (deletes) all Files from a Job,
239 21 Amministratore Truelite
[[JobId]], Client or Volume; or it purges (deletes)
240 1 Amministratore Truelite
all Jobs from a Client or Volume without regard
241 28 Amministratore Truelite
for retention periods. Normally you should use the
242 21 Amministratore Truelite
PRUNE command, which respects retention periods.
243
244
</pre>
245 33 Simone Piccardi
246 28 Amministratore Truelite
(il comando impiegherà un certo tempo per eseguire l'operazione), a questo punto si potrà verificare che il volume è diventato disponibile con:
247 33 Simone Piccardi
248 28 Amministratore Truelite
<pre>
249 22 Amministratore Truelite
*list volumes
250 21 Amministratore Truelite
Using default Catalog name=MyCatalog DB=bacula
251 22 Amministratore Truelite
Pool: Default
252 21 Amministratore Truelite
253 1 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
254 28 Amministratore Truelite
| [[MediaId]] | [[VolumeName]] | [[VolStatus]] | [[VolBytes]]    | [[VolFiles]] | [[VolRetention]] | Recycle | Slot | [[InChanger]] | [[MediaType]] | [[LastWritten]]         |
255 24 Amministratore Truelite
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
256 27 Amministratore Truelite
| 1       | Volume0013 | Full      | 13156318147 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-06 02:53:16 |
257 25 Amministratore Truelite
| 2       | Volume0014 | Full      | 15260956061 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-15 01:12:48 |
258 1 Amministratore Truelite
| 3       | Volume0015 | Full      | 10288088510 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-07-30 02:03:26 |
259 27 Amministratore Truelite
| 4       | Volume0016 | Full      | 28805889791 | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-06 01:26:31 |
260
| 5       | Volume0017 | Purged    | 968063348   | 0        | 1814400      | 1       | 0    | 0         | File      | 2006-08-21 11:59:28 |
261
+---------+------------+-----------+-------------+----------+--------------+---------+------+-----------+-----------+---------------------+
262 28 Amministratore Truelite
</pre>
263 1 Amministratore Truelite
264 27 Amministratore Truelite
265
266 28 Amministratore Truelite
h2. Configurazione Webacula
267
268
269
"Webacula":http://webacula.sourceforge.net/ è una interfaccia di gestione via Web di Bacula, basata su PHP e Zendframework, pertanto per installarla si sono preventivamente installati i seguenti pacchetti con:
270
<pre>
271 27 Amministratore Truelite
apt-get install zendframework php5-gd
272 28 Amministratore Truelite
</pre>
273 27 Amministratore Truelite
274 28 Amministratore Truelite
<pre>
275 27 Amministratore Truelite
276 28 Amministratore Truelite
<pre>
277
<pre>
278 26 Amministratore Truelite
[general]
279
db.adapter = PDO_SQLITE 
280
db.config.dbname = /var/lib/bacula/bacula.db
281
282 1 Amministratore Truelite
def.timezone = "Europe/Rome"
283
bacula.sudo = ""
284
bacula.bconsole = "/usr/bin/bconsole"
285
286 27 Amministratore Truelite
[webacula]
287
db.adapter = PDO_SQLITE
288
db.config.dbname = /var/www/webacula/webacula.db
289 28 Amministratore Truelite
</pre>
290 27 Amministratore Truelite
291
292 28 Amministratore Truelite
<pre>
293 27 Amministratore Truelite
chown www-data /var/www/webacula/webacula.db
294
usermod -aG bacula www-data
295
usermod -aG ssl-cert www-data
296 28 Amministratore Truelite
</pre>
297 27 Amministratore Truelite
298 28 Amministratore Truelite
<pre>
299
<pre>
300 27 Amministratore Truelite
a2enmod rewrite
301 28 Amministratore Truelite
</pre>
302
<pre>
303
<pre>
304
# [[RewriteLog]] "/var/log/httpd/rewrite.log"
305
# [[RewriteLogLevel]] 3
306
# [[SetEnv]] APPLICATION_ENV development
307
[[SetEnv]] APPLICATION_ENV production
308 27 Amministratore Truelite
309
Alias /webacula  /var/www/webacula/html
310
<Directory /var/www/webacula/html>
311 28 Amministratore Truelite
   [[RewriteEngine]] On
312 27 Amministratore Truelite
313 28 Amministratore Truelite
   [[RewriteBase]]   /webacula
314
   [[RewriteCond]] %{REQUEST_FILENAME} -s [OR]
315
   [[RewriteCond]] %{REQUEST_FILENAME} -l [OR]
316
   [[RewriteCond]] %{REQUEST_FILENAME} -d
317
   [[RewriteRule]] ^.*$ - [NC,L]
318
   [[RewriteRule]] ^.*$ index.php [NC,L]
319 1 Amministratore Truelite
320
   php_flag magic_quotes_gpc off
321
   php_flag register_globals off
322
323 28 Amministratore Truelite
   Options Indexes [[FollowSymLinks]]
324
   [[AllowOverride]] All
325 1 Amministratore Truelite
   Order deny,allow
326
327
328 28 Amministratore Truelite
#   [[AuthType]] Basic
329
#   [[AuthName]] "Webacula"
330
#   [[AuthUserFile]]       /etc/httpd/conf/webacula.users
331 1 Amministratore Truelite
#   Require valid-user
332
</Directory>
333
334 28 Amministratore Truelite
</pre>