Três dos comandos mais comuns do Linux usados para localizar arquivos no Linux incluem find, locate, e which. Esses utilitários têm similaridades, mas funcionam e retornam dados de maneiras diferentes e, portanto, podem ser usados em circunstâncias diferentes.
O principal comando de localização de arquivos no Linux é o find. Cuja sintaxe básica é:
find diretório critério [ -exec comando {} \;].
O argumento diretório indica onde o find deve iniciar a busca, e o critério pode ser o nome do arquivo/diretório a ser procurado ou uma regra para a busca.
Critérios comuns:
-type : Define o tipo de arquivo (diretório(d), arquivo(f) link(l)).
-name: Nome do arquivo.
-iname: Ignora se está maiúsculo ou não.
-user usuário: Dono do arquivo.
-perm modo: O arquivo procurado tem permissão específica
-size: O arquivo procurado tem um tamanho específico.
Exemplos
find /home -iname aluno
find / -iname SERVICES
find /var -size +10M -exec ls -lh {} \;find / -regex '^/etc/p[a-z]*$'
find / -regex '^[/a-z_]*[cC]+[Oo]*[nN]+[fF]+[iI]*[gG]+$'
Um comando bem interessante , que usamos na parte de Red Team, é procurar por arquivos com o SUID BIT habilitado. Vamos entender melhor quando vermos permissões de arquivos.
find / -type f \( -perm -4000 -o -perm -2000 \) > suid_sgid_files.txt
Sua utilização é simples, todo caminho do arquivo ou diretório contendo a expressão fornecida como argumento será mostrado. A busca é mais rápida em relação ao find, pois ele realiza a busca em seu banco de dados e não diretamente no disco. Esse banco precisa ser regularmente atualizado por meio do comando updatedb. Se não estiver instalado siga os procedimentos abaixo:
Instalando o locate no Debian:
aptitude install -y locate
Atualizando a base de dados
updatedb
Procurando por um arquivo/diretório
locate sysadmin
O comando which localiza o executável de um arquivo, informa o diretório onde ele está.
Exemplos:
which iptables
which ls
O comando whereis exibe o executável , o caminho do código fonte e os arquivos de documentação.
Exemplo:
whereis iptables