Robocopy ERROR 1314 (0x00000522) Copying NTFS Security to Destination Directory

Lanciando per la prima volta questo semplice script con Robocopy:

> robocopy %SOURCE% %DESTINATION% /COPYALL /MIR /ZB /R:3 /W:5 /LOG:%LOGFILE%

dove:

  • %SOURCE% era un percorso locale (Server Windows), ad esempio C:\Test
  • %DESTINATION% era un percorso di rete, nello specifico, una cartella di un NAS, ad esempio \\MyNAS1\share1\Test
  • %LOGFILE% era il percorso in cui aveva il mio file di log

mi sono accorto che erano state copiate soltanto cartelle e sottocartelle vuote.

Analizzando il log mi sono accorto dei seguenti errori:

[...]

    New File 6148 .DS_Store
2015/12/24 10:41:56 ERROR 1314 (0x00000522) Copying NTFS Security to Destination Directory C:\\Test\\
A required privilege is not held by the client.
    New File 41.3 m test.doc
2015/12/24 10:41:56 ERROR 1314 (0x00000522) Copying NTFS Security to Destination Directory C:\\Test\\
A required privilege is not held by the client.
    New File 659 README.txt
2015/12/24 10:41:56 ERROR 1314 (0x00000522) Copying NTFS Security to Destination Directory C:\\Test\\
A required privilege is not held by the client.
    New File 17920 TESTxlsx.xlsx
2015/12/24 10:41:56 ERROR 1314 (0x00000522) Copying NTFS Security to Destination Directory C:\\Test\\

[...]

lo stesso errore per ogni file.

Per risolvere il problema ho modificato lo script togliendo l’opzione /COPYALL e mettendo al suo posto /COPY:DAT, così:

> robocopy %SOURCE% %DESTINATION% /COPY:DAT /MIR /ZB /R:3 /W:5 /LOG:%LOGFILE%

Molto probabilmente il NAS che ha un sistema UNIX al suo interno, non riesce a mantenere le informazioni di sicurezza, proprietari e auditing che vengono passate rispettivamente con le opzioni S, O e U.

Attenzione: nel mio caso, la rimozione delle opzioni faceva al caso mio perché non avevo la necessità di mantenere quelle informazioni nel mio backup. In caso contrario, consiglio di cercare altrove la causa del problema.

Note utili tratte dal sito ufficiale

  • /COPYALL : Copy ALL file info (equivalent to /COPY:DATSOU).
  • /COPY:copyflag[s] : What to COPY (default is /COPY:DAT)
    (copyflags : D=Data, A=Attributes, T=Timestamps, S=Security=NTFS ACLs, O=Owner info, U=aUditing info).

Link utili su Robocopy per capire e approfondire la sintassi

Copiare due cartelle in Linux con rsync

Se si vogliono copiare due cartelle in Linux si può usare rsync da linea di comando.

Preparo l’ambiente di test creando le seguenti cartelle e file:

cartella “/share/source”
cartella “/share/destination”
cartella “/share/source/folder 1”
cartella “/share/source/folder 2”
file “/share/source/folder 1/file 1”
file “/share/source/folder 2/file 2”

Voglio copiare il contenuto della cartella “source” nella cartella “destination”. Quindi lancio:

[/share] # rsync -avc "source/" "destination"

Come mi aspettavo, ecco il risultato:

sending incremental file list
./
folder 1/
folder 1/file 1.txt
folder 2/
folder 2/file 2.txt

sent 253 bytes received 61 bytes 628.00 bytes/sec
total size is 12 speedup is 0.04

Verifico il risultato:

[/share] # ls -lR destination/
destination/:
drwxrwx--- 2 admin administ 4096 Dec 2 17:24 folder 1/
drwxrwx--- 2 admin administ 4096 Dec 2 17:24 folder 2/

destination/folder 1:
-rwxrwx--- 1 admin administ 6 Dec 2 17:24 file 1.txt*

destination/folder 2:
-rwxrwx--- 1 admin administ 6 Dec 2 17:24 file 2.txt*

Con un bel man rsync si possono vedere le opzioni che ho usato: https://linux.die.net/man/1/rsync

-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose               increase verbosity
-c, --checksum              skip based on checksum, not mod-time & size

Qualche nota:

  • Nel comando del confronto, la slash “/” di “source/” vuol dire “il contenuto di source”.
  • L’opzione “-a” equivale a “-rlptgoD”. Incollo qui sotto le spiegazioni:
-r, --recursive             recurse into directories
-l, --links                 copy symlinks as symlinks
-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-g, --group                 preserve group
-o, --owner                 preserve owner (super-user only)
-D                          same as --devices --specials
--devices                   preserve device files (super-user only)
--specials                  preserve special files

Confrontare due cartelle in Linux con rsync

Se si vogliono confrontare due cartelle in Linux si può usare rsync da linea di comando.

Preparo l’ambiente di test creando le seguenti cartelle e file:

cartella “/share/source”
cartella “/share/destination”
cartella “/share/source/folder 1”
cartella “/share/source/folder 2”
file “/share/source/folder 1/file 1”
file “/share/source/folder 2/file 2”
cartella “/share/destination/folder 1”
file “/share/destination/folder 1/file 1”

Voglio confrontare la cartella “source” con la cartella “destination”. Quindi lancio:

[/share] # rsync -avnc "source/" "destination"

Come mi aspettavo, ecco il risultato:

sending incremental file list
./
folder 2/
folder 2/file 2.txt

sent 155 bytes received 23 bytes 356.00 bytes/sec
total size is 12 speedup is 0.07 (DRY RUN)

la cartella “folder 2” e il file “folder 2/file 2.txt”  sono quelli che mancano nella cartella “destination”.

Con un bel man rsync si possono vedere le opzioni che ho usato: https://linux.die.net/man/1/rsync

-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose               increase verbosity
-n, --dry-run               perform a trial run with no changes made
-c, --checksum              skip based on checksum, not mod-time & size

Qualche nota:

  • Nel comando del confronto, la slash “/” di “source/” vuol dire “il contenuto di source”.
  • L’opzione “-a” equivale a “-rlptgoD”. Incollo qui sotto le spiegazioni:
-r, --recursive             recurse into directories
-l, --links                 copy symlinks as symlinks
-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-g, --group                 preserve group
-o, --owner                 preserve owner (super-user only)
-D                          same as --devices --specials
--devices                   preserve device files (super-user only)
--specials                  preserve special files
  • L’opzione “-n” è indispensabile per il confronto!!

Installazione Ntop su Ubuntu Server

Questa installazione di Ntop è stata testata sulla distribuzione Ubuntu Server 12.04.2 i386.

La maggior parte delle guide su internet fanno installare Ntop dal gestore dei pacchetti (apt o yum), ma per questa guida ho deciso di installare Ntop dai sorgenti, in questo modo siamo sicuri di installare l’ultima versione disponibile.

[Passo non verificato (perché l’installazione di prova è stata fatta da root): creare l’utente ntop ed effettuare tutti i passi con questo utente]

Download sorgenti:

$ wget http://downloads.sourceforge.net/project/ntop/ntop/Stable/ntop-5.0.1.tar.gz

Copiarlo nella cartella desiderata:

$ sudo cp ntop-5.0.1.tar.gz /usr/src
$ cd /usr/src

Scompattarlo:

$ tar xzf ntop-5.0.1.tar.gz
$ cd ntop-5.0.1

Installare (perché verrà richiesto):

$ sudo apt-get install build-essential libtool automake autoconf libpcap-dev libgdbm-dev zlib1g-dev rrdtool librrd-dev libssl-dev python-dev libgeoip-dev graphviz libgraphviz-dev

Installare (perché verrà richiesto):

$ sudo apt-get install subversion

Lanciare:

$ sudo ./autogen.sh
$ sudo make
$ sudo make install
$ sudo ldconfig

(preso dal man: “ldconfig creates the necessary links and cache to the most recent shared libraries found in the directories specified on the command line […]”)

Nel caso si stia utilizzando l’utente ntop, seguire quanto suggerito dal terminale:

************************************************************
************************************************************

WARNING: This install created a directory for the ntop files and databases:

/usr/local/share/ntop

This directory MUST be owned by the user
which you are going to use to run ntop.

The command you must issue is something like:

chown -R ntop.ntop /usr/local/share/ntop
or chown -R ntop:users /usr/local/share/ntop

man chown to check the syntax for YOUR system

************************************************************
************************************************************

Altrimenti:

$ chown -R nobody:nogroup /usr/local/var/ntop

Lanciare Ntop

$ sudo ntop

Viene chiesto:

Please enter the password for the admin user:

[Inserire una pwd per l’admin di ntop. Sarà quello usato nell’interfaccia Web]

Nota: ciò si faceva in precedenza con:

#ntop -A

A questo punto, dal browser, accedere all’indirizzo del server ntop:

http://x.y.z.k:3000