Sto cercando un comando Linux che possa cambiare la proprietà di tutti i file appartenenti a un determinato utente, preferibilmente in una directory di destinazione, a un altro utente specificato.
Il comando dei miei sogni sarebbe simile a questo ...
chuser -R --olduser tom --newuser jerry
o
chuser -R --olduser 1066 --newuser 1492
Questo è il mio scenario ... Ho un file di backup (.tgz) con le informazioni dell'utente e del gruppo conservate in esso. È stato preso da un server Web che esegue Apache e MySQL. I file nel backup provengono da tutto il sistema e contengono file di diversi utenti diversi e diversi account di tipo di sistema ed è fondamentale che, quando ripristinati sul nuovo server, le impostazioni non vadano perse. Il problema è che gli utenti sulla macchina stanno ripristinando i file in modo che non corrispondano a quelli nel file di backup. Ad esempio, entrambe le macchine avevano un utente MySQL ma avevano ID utente diversi e c'erano diversi ID utente esistenti su entrambe le macchine appartenenti a utenti diversi. Ciò significa che non è possibile sincronizzare gli utenti sulla nuova macchina con quelli sulla vecchia macchina.
Posso trovare tutti i file degli utenti con il comando find in questo modo ...
find /decompressed-backup-dir -uid 1050
o
find /decompressed-backup-dir -user tom
Se, come sospetto, non c'è modo di fare ciò che voglio con un singolo comando, allora forse c'è un modo per convogliare i risultati del comando find a un altro comando per gestire il cambio di proprietà?
Potrei farlo con uno script PHP ma ci sono 4 GB e decine di migliaia di file nel backup, quindi non voglio usare PHP o Perl ma sarei felice con uno script shell che potrebbe gestirlo.
-uid
me usato-user