GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver des fichiers en fonction de leurs autorisations sous Linux

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.

  1. Si nous spécifions le mode sans aucun préfixe, il trouvera des fichiers exact autorisations.
  2. Si nous utilisons "-" préfixe avec mode, au moins les fichiers doivent avoir l'autorisation donnée, pas l'autorisation exacte.
  3. 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

Linux
  1. Comment rechercher et trier des fichiers en fonction de la date et de l'heure de modification sous Linux

  2. Comment trouver les fichiers modifiés récents ou d'aujourd'hui sous Linux

  3. Comment rechercher des fichiers avec la commande fd sous Linux

  4. Comment utiliser la commande Linux find pour rechercher des fichiers

  5. Comment puis-je générer une liste de fichiers avec leur chemin absolu sous Linux ?

Comment trouver des fichiers sous Linux

Comment compter les fichiers dans le répertoire sous Linux

Autorisations Linux - Comment trouver les autorisations d'un fichier

Comment trouver des fichiers basés sur l'horodatage sous Linux

Comment rechercher des fichiers avec la commande fd sous Linux

Comment trouver des dossiers sous Linux