En supposant que vous disposiez des droits d'accès à la racine du système, vous pouvez utiliser la procédure suivante
sudo -u USER -g GROUP find ROOTDIR -exec test \! -r {} \; -ls
où USER et GROUP doivent être remplacés par le nom d'utilisateur et le nom de groupe dont l'accès doit être évalué et ROOTDIR est le répertoire principal de l'arborescence sous laquelle l'évaluation doit être effectuée.
Mises en garde
Il convient de noter que sudo
doit être configuré de manière appropriée, ce qui signifie que root doit être autorisé à agir en tant qu'utilisateur et groupe.
Comment cela fonctionne-t-il ?
La commande fonctionne en exécutant la commande test
pour tous les fichiers et répertoires sous ROOTDIR. Les options passées à l'utilitaire lui permettent de renvoyer un code de sortie de type succès (zéro) chaque fois qu'il peut pas accéder à un fichier ou à un répertoire donné. Ce code de sortie est ensuite utilisé par find
pour déterminer s'il faut imprimer le nom du fichier ou du répertoire ( -ls
).
Sortie
La sortie est la liste des fichiers et des répertoires sur lesquels USER:GROUP agit pas ont accès à des informations supplémentaires sur chaque fichier et répertoire, similaires à celles fournies par le logiciel ls -l
(c'est-à-dire avec les autorisations, la propriété, l'heure de modification, etc.)
Des choses utiles que vous pouvez modifier
Vous pouvez tester différents types d'autorisations en remplaçant -r
avec une option différente, voir test de l'homme . Vous pouvez remplacer -ls
con -print
si vous ne voulez pas d'informations supplémentaires sur chaque fichier et répertoire, mais seulement leur nom. Notez que si la commande trouve des répertoires qu'elle ne peut pas parcourir, elle se plaindra également sur stderr. En fonction de ce que vous passez à test
il peut s'agir d'un problème superficiel qui peut être résolu par une réorientation.