Trouver des fichiers à partir de la ligne de commande sous Linux est beaucoup plus facile et plus rapide. Nous avons déjà expliqué comment rechercher et trier des fichiers en fonction de la date et de l'heure d'accès et de modification . Aujourd'hui, nous verrons comment trouver des fichiers en fonction de leurs autorisations dans les systèmes d'exploitation Linux et Unix.
Pour les besoins de ce guide, je vais créer trois fichiers à savoir file1
, file2
et file3
avec les autorisations 777
, 766
, 655
respectivement dans un dossier nommé ostechnix
.
$ mkdir ostechnix && cd ostechnix/
$ install -b -m 777 /dev/null file1
$ install -b -m 766 /dev/null file2
$ install -b -m 655 /dev/null file3
Trouvons maintenant les fichiers en fonction de leurs autorisations.
Rechercher des fichiers en fonction de leurs autorisations
La syntaxe typique pour rechercher des fichiers en fonction de leurs autorisations est :
$ find -perm mode
Le MODE
peut être soit avec numérique ou octal autorisation (comme 777
, 666
, ... etc) ou permission symbolique (comme u=x
, a=r+x
).
Nous pouvons spécifier le MODE
de trois manières différentes, comme indiqué ci-dessous.
- Si nous spécifions le mode sans aucun préfixe, il trouvera des fichiers exact autorisations.
- Si nous utilisons
"-"
préfixe avec mode, au moins les fichiers doivent avoir l'autorisation donnée, pas l'autorisation exacte. - Si nous utilisons
"/"
préfixe, le propriétaire, le groupe ou autre doit avoir l'autorisation d'accéder au fichier.
Permettez-moi d'expliquer avec quelques exemples, afin que vous puissiez mieux comprendre.
Tout d'abord, nous verrons comment rechercher des fichiers en fonction des autorisations numériques.
Rechercher des fichiers en fonction de leurs autorisations numériques (octales)
Maintenant, laissez-moi exécuter la commande suivante :
$ find -perm 777
Cette commande trouvera les fichiers avec la permission exactement 777 dans le répertoire courant.
Comme vous le voyez dans la sortie ci-dessus, file1 est le seul à avoir l'autorisation 777 exacte .
Maintenant, utilisons "-"
préfixe et voyez ce qui se passe.
$ find -perm -766
Comme vous le voyez, la commande ci-dessus affiche deux fichiers. Nous avons défini 766
autorisation pour file2
, mais cette commande affiche deux fichiers, pourquoi ? Parce que, ici, nous avons utilisé "-"
préfixe. Cela signifie que cette commande trouvera tous les fichiers où le propriétaire du fichier a des autorisations de lecture/écriture/exécution, les membres du groupe de fichiers ont des autorisations de lecture/écriture et tout le reste a également des autorisations de lecture/écriture. Dans notre cas, file1
et file2
ont répondu à ce critère. En d'autres termes, les fichiers n'ont pas besoin d'avoir l'autorisation 766 exacte. Il affichera tous les fichiers qui relèvent de cette autorisation 766.
Ensuite, nous utiliserons "/"
préfixe et voyez ce qui se passe.
$ find -perm /222
La commande ci-dessus trouvera les fichiers accessibles en écriture par quelqu'un (soit leur propriétaire, soit leur groupe, soit n'importe qui d'autre). Voici un autre exemple.
$ find -perm /220
Cette commande trouvera les fichiers accessibles en écriture soit par leur propriétaire, soit par leur groupe. Cela signifie que les fichiers n'ont pas besoin d'être inscriptibles par à la fois le propriétaire et le groupe être assorti; soit fera l'affaire.
Mais si vous exécutez la même commande avec "-"
préfixe, vous ne verrez que les fichiers accessibles en écriture par le propriétaire et le groupe.
$ find -perm -220
La capture d'écran suivante vous montrera la différence entre ces deux préfixes.
Comme je l'ai déjà dit, nous pouvons également utiliser la notation symbolique pour représenter les autorisations de fichiers.
Rechercher des fichiers en fonction de leurs autorisations en utilisant la notation symbolique
Dans les exemples suivants, nous utilisons des notations symboliques telles que u ( pour l'utilisateur), g (groupe), o (autres). On peut aussi utiliser la lettre a pour représenter ces trois catégories. Les autorisations peuvent être spécifiées à l'aide des lettres r (lire), w (écrire), x (exécutable).
Par exemple, pour trouver n'importe quel fichier avec le groupe écrire autorisation, exécutez :
$ find -perm -g=w
Comme vous le voyez dans l'exemple ci-dessus, file1
et file2
faire en sorte que le groupe écrive autorisation. Veuillez noter que vous pouvez utiliser soit "="
ou "+"
opérateurs de notation symbolique. Par exemple, les deux commandes suivantes feront la même chose.
$ find -perm -g=w $ find -perm -g+w
Pour trouver n'importe quel fichier accessible en écriture par le propriétaire du fichier, exécutez :
$ find -perm -u=w
Pour trouver n'importe quel fichier accessible en écriture par tous (le propriétaire du fichier, le groupe et tous les autres), exécutez :
$ find -perm -a=w
Pour rechercher des fichiers accessibles en écriture par les deux leur propriétaire et leur groupe , utilisez cette commande :
$ find -perm -g+w,u+w
La commande ci-dessus est équivalente à "find -perm -220"
commande.
Pour trouver des fichiers accessibles en écriture par soit leur propriétaire ou leur groupe , exécutez :
$ find -perm /u+w,g+w
Ou,
$ find -perm /u=w,g=w
Ces deux commandes font le même travail que "find -perm /220"
commande.
Pour plus de détails, reportez-vous aux pages de manuel.
$ man find
Consultez également les alternatives aux pages de manuel pour en savoir plus sur des exemples simplifiés de n'importe quelle commande Linux.
Lire connexe :
- Comment trouver les répertoires et fichiers les plus grands et les plus petits sous Linux
- Comment trouver le fichier le plus ancien dans une arborescence de répertoires sous Linux
- Comment trouver des fichiers plus gros ou plus petits que la taille X sous Linux