Comment rechercher des fichiers avec une autorisation spécifique

8

Comment puis-je rechercher des fichiers qui ont une autorisation spécifique. Par exemple, j'ai 10000 fichiers et je veux trouver ceux qui ont le drapeau READ ONLY. Dans un autre cas, je veux en rechercher un autre qui a un propriétaire particulier. Ou dans un autre pour voir les fichiers qui sont LUS SEULEMENT et EXÉCUTABLES.

Luis Alvarado
la source

Réponses:

9

Il est probablement plus simple d'utiliser la findcommande, qui vous permet de rechercher récursivement dans l'arborescence des répertoires. Par exemple, si vous souhaitez en particulier rechercher des fichiers en lecture seule, vous pouvez taper

find <specify location> -type f -perm -444

Pour les fichiers appartenant à un utilisateur particulier, vous pouvez utiliser

find <location> -type f -user mike

Pour les fichiers exécutables (pour tous), vous pouvez utiliser

find <location> -type f -perm -777

Pour ceux qui sont exécutables et en lecture seule pour tous, vous utiliseriez 555 au lieu de 777 dans l'exemple ci-dessus. Vous pouvez également rechercher des fichiers appartenant à un groupe en les remplaçant -user mikepar -group mike.

Pour annuler les termes de recherche et ainsi rechercher exactement le contraire, vous pouvez utiliser un point d'exclamation comme celui-ci:

find <location> -type f ! -perm -444 

Remarque: La spécification d'un tiret avant les autorisations (par exemple -perm -444) signifie que tous les fichiers qui ont un indicateur en lecture seule seront trouvés et pas seulement ceux qui sont 444; pour rechercher exactement 444 et seulement cela, supprimez simplement le tiret (par exemple -perm 444).

Remarque 2: Des combinaisons d'autorisations peuvent également être recherchées en utilisant -apour et et -opour ou; par exemple, pour trouver exactement ces autorisations, tapez:

find <location> -type f -perm 744 -o -perm 666

Les répertoires peuvent être recherchés avec -type d.

Voir man findpour les autres permutations disponibles.


la source
+1 pour avoir mentionné la différence entre -444et444
Fr0zenFyr
Pour moi, -perm -444trouve les fichiers qui ont l' readautorisation, pas ceux qui sont en lecture seule (c'est-à-dire, ayant seulement read et aucune autre autorisation).
Jānis Elmeris