Los 5 usos avanzados principales del comando Find (Buscar)

En este tutorial, te brindaremos asistencia para que puedas dominar la utilización del comando 'find' en Linux, revelándote sus cinco usos secretos principales. Comenzaremos desde un enfoque un poco más complejo en el uso de 'find' y progresaremos hacia su aplicación más avanzada. Sin perder más tiempo, ¡sumerjámonos en el tutorial!

¿Cómo encontrar los archivos con una profundidad específica?

Si se encuentra en las circunstancias en las que no desea escanear toda la estructura del directorio, o desea limitar su búsqueda dentro del directorio actual o su subdirectorio, entonces puede usar el profundidad mando.

Comando:

find ./ -name *.gz 2>&1|grep -vi permiss

Encontrar sin profundidad definida

Producción:

./test_level_1/test_level_2/test_level_3/test_level3.tar.gz
./test_level_1/test_level_2/test_level2.tar.gz
./test_level_1/test_level1.tar.gz

El comando anterior debería buscar todo el archivo con una extensión .gz. Debería buscar de forma recursiva el archivo especificado directamente desde el directorio mencionado. Puede ignorar la parte “2> & 1 | grep -vI permiss”, esto es para ignorar el error (Permiso denegado).

Si eso muestra archivos de todas las directivas, ¿cómo podemos limitar nuestra búsqueda?

Puede utilizar el siguiente comando para hacerlo posible.

Comando:

Find ./ -maxdepth 3 -name *.gz 2>&1|grep -I permiss

Producción:

./test_level_1/test_level_2/test_level2.tar.gz
./test_level_1/test_level1.tar.gz

Encontrar comando con Max Depth 3

Como se muestra en el comando dado, debería extraer los resultados del directorio actual y sus dos subdirectorios.

¿Cómo encontrar los archivos propiedad de un usuario específico?

Supongamos que tiene un servidor web e imaginemos que un pirata informático ha inyectado el código malicioso en sus archivos. Después de investigar, descubrió que el usuario de XYZ lo hizo. Sin embargo, para solucionarlo, desea enumerar todos los archivos propiedad del usuario XYZ. En nuestro caso, estos son los archivos afectados. En este caso, el siguiente comando debería ayudarlo mucho.

Comando:

find ./ -user sfusate -name "*.txt" 2>&1|grep -I permiss

Encontrar los archivos con los propios de un usuario

Según la captura de pantalla anterior, enumeramos los archivos para asegurarnos de que también sean propiedad de otro usuario. El comando 'pwd' muestra que estamos ejecutando el siguiente comando desde el mismo directorio. Por último, el comando 'buscar' con la bandera como '-usuario' nos da el poder de listar los archivos con la extensión como '.txt'. además, propiedad del usuario 'sfusate' como se muestra arriba.

¿Cómo eliminar todos los archivos propiedad de un usuario usando el comando 'buscar'?

El mejor uso de obtener todos los archivos propiedad de un usuario se vuelve más útil cuando desea eliminar todos los archivos propiedad de ese usuario específico.

Extendiendo nuestro caso de servidor web pirateado, una vez que identificó todos los archivos por el usuario XYZ, el momento en que desea eliminar esos archivos puede usar el siguiente comando.

Comando:

find ./ -user sfusate -name "*.txt" -exec rm {} ; 2>&1|grep -vi permiss

Eliminar todos los archivos propiedad de un usuario usando el comando buscar

La captura de pantalla muestra que estamos enumerando todos los archivos propiedad de un usuario 'sfusate'. En la siguiente ejecución, eliminaremos todos los archivos con extensión '.txt. El tercer comando confirma, todos los '.txt'. Se han eliminado los archivos del directorio actual y su subdirectorio propiedad del usuario 'sfusate'.

¿Cómo encontrar los archivos con un permiso de archivo específico?

En este caso, nuestro hacker es bastante inteligente. No está creando archivos nuevos ni cambiando la propiedad. Está modificando el permiso del archivo, manteniendo intacto al propietario del archivo. ¿Qué está haciendo exactamente? Toma el usuario del sistema y restringe el permiso del archivo a ese usuario específico.

Si alguna vez se encuentra en esta situación, debe encontrar los archivos con permiso de archivos para un usuario o grupo. Para ayudarlo con eso, tenemos el siguiente comando.

Comando:

find . -perm -g=w -type f -exec ls -l {} ; 2>&1|tail -n 5

Producción:

-rwxrwxrwx. 1 ceyoung domain users 2315 Aug 28 00:12 ./monitordataload/setenv_dsmdevops.sh
-rwxrwxrwx. 1 ceyoung domain users 2251 Aug 28 00:12 ./monitordataload/setenv_dsmdevops_prod.sh
-rwxrwxrwx. 1 ceyoung domain users 2261 Aug 28 00:12 ./monitordataload/setenv_dsmdevops_tailoring.sh
-rwxrwxrwx. 1 ceyoung domain users 2405 Aug 28 00:12 ./monitordataload/updateRecord.sh
-rwxrwxrwx. 1 nikhshah domain users 2253 Aug 23 04:35 ./dsmdevops-19.8.0/README.md

Archivos con permiso de escritura para el único grupo

La imagen dada muestra, cuando pasamos el argumento como -g = w, debería mostrar todos los archivos que tienen permiso de escritura para el Grupo. Por otro lado, cuando dice g = w, como se muestra en el segundo comando, debería restringirse para mostrar los archivos que solo tienen permiso de escritura.

Como no tenemos ningún archivo con solo permiso de escritura, muestra los resultados 0.

¿Cómo eliminar los archivos usando el comando 'inode' y 'buscar'?

Ahora nuestro hacker se volvió más inteligente, esta vez ha creado el clon de archivos existentes con el nombre de archivo como se muestra en el siguiente ejemplo.

Mostrando los iNodes

Como se muestra en el ejemplo dado, tenemos dos archivos de prueba:

Supongamos que los archivos 'test? .Txt' son archivos afectados creados por el atacante. Quiere eliminar este código / archivo malicioso. Como el '?' Es un carácter único, no se asumirá como parámetro al ejecutar el comando rm. Si presiona el comando 'rm test *.' Debería eliminar todos los archivos que contienen la palabra "prueba".

Para superar esto, uno tiene que usar el 'inodo'. La imagen dada muestra el comando para mostrar los inodos.

Comando:

ls -il

Debería dar inodos para todos los archivos y se mostrará en la primera columna. Para el archivo 'test? .Txt' el inodo es 266534.

Ahora, continuemos, cómo se pueden eliminar estos archivos con el inodo.

Comando:

Find -inum 266534 -exec rm {} ;

Eliminar los archivos con Inode

Como se muestra en la captura de pantalla, cuando disparamos el comando 'ls' con un inodo, debería mostrar el archivo 'test? .Txt' con detalles del inodo.

Después de eliminar el archivo usando la búsqueda y el inodo, el comando 'ls' prueba que el archivo se eliminó correctamente.

Conclusión

Se trata del uso avanzado del comando 'buscar'. Espero que te haya gustado. Estén atentos a FOSS Linux para conocer muchos de estos trucos, consejos, el mejor uso, el uso avanzado de Linux y los comandos en Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir