¿Es posible usar cp para copiar el archivo .bash_history de cada usuario en la misma carpeta (con el nombre de usuario adjunto)?
¿O es al menos posible copiarlos en un conjunto paralelo de carpetas? Parece que no puedo resolver esto.
Tengo acceso root.
linux
bash
command-history
user1399747
fuente
fuente
Respuestas:
tl; dr;
for a in /home/* ; do cp $a/.bash_history /tmp/$a.bash_history ; done
Versión más larga:
para un patrón in se repite sobre todos los elementos de un patrón.
El patrón en sí se almacena en la variable llamada una .
Ejemplos:
for a in * ; do echo $a ; done
todos los nombres de archivo de eco.for a in /home/* ; do echo $a ; done
Echo los nombres de todos los homedirs en / home.En lugar de eco Usamos el comando copiar. (cp)
Y como no queremos sobrescribir todos los archivos, debemos cambiar el nombre del destino o concatenarlos en un solo archivo.
.bash_history
Para copiar utilizamos cp $ a / tmp / $ a_file (Todos los archivos ahora tienen nombres diferentes.
Para concatenar, podemos usar cat y adjuntar a la redirección.
for a in /home/* ; do cat $a/.bash_history >> /tmp/all-users_bash_history ; done
fuente
Recuerde que esta NO es una forma totalmente infalible de copiar la actividad de un usuario. Esto se debe a que hay opciones que el usuario puede invocar fácilmente para no colocar cosas en el archivo histórico. Así que no contaría con esto como cualquier tipo de mecanismo de auditoría.
Además, como usuario root, es un poco sospechoso espiar el archivo de otros usuarios a menos que haya razones específicas y válidas para hacerlo. Falta un poco de integridad aquí, a menos que les diga que va a hacer esto.
fuente
Si buscas algo en particular, puedes usar:
Fuente
fuente