je cherche à vérifier que l'arborescence courante est entièrement
accessible (en lecture) à l'utilisateur qui lance un script.
Le but est d'arrêter dès qu'un fichier/répertoire n'est pas accessible.
Pour le moment je procède ainsi:
8<------8<------8<------8<------8<------8<------8<------8<------8<------
find -type f >/dev/null || {
echo "Vous n'avez pas les droits suffisants etc...."
exit 1
}
8<------8<------8<------8<------8<------8<------8<------8<------8<------
mais ce n'est pas optimum car find parcourt toute l'arborescence alors
qu'il suffit de s'arrêter au premier « Permission denied ».
Comment optimiser le code ? Merci !
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane CHAZELAS
2009-06-28, 16:39(+02), Ph Ivaldi:
je cherche à vérifier que l'arborescence courante est entièrement accessible (en lecture) à l'utilisateur qui lance un script. Le but est d'arrêter dès qu'un fichier/répertoire n'est pas accessible. Pour le moment je procède ainsi: 8<------8<------8<------8<------8<------8<------8<------8<------8<------ find -type f >/dev/null || { echo "Vous n'avez pas les droits suffisants etc...." exit 1 } 8<------8<------8<------8<------8<------8<------8<------8<------8<------
mais ce n'est pas optimum car find parcourt toute l'arborescence alors qu'il suffit de s'arrêter au premier « Permission denied ».
if [ -n "$firstwrong" ]; then printf 'there are non-readable or non-executable directories such as %sn' "$firstwrong" fi
Note que c'est censé faire la meme chose que ton test d'erreur de find -type f. Mais find retournant une erreur ne veut pas dire qu'on ne peut pas acceder certains fichiers.
Par exemple, on peut acceder aux fichiers dans un repertoire executable et non-lisible, on ne peut pas lire le contenu de ce repertoire, c'est tout.
-- Stéphane
2009-06-28, 16:39(+02), Ph Ivaldi:
je cherche à vérifier que l'arborescence courante est entièrement
accessible (en lecture) à l'utilisateur qui lance un script.
Le but est d'arrêter dès qu'un fichier/répertoire n'est pas accessible.
Pour le moment je procède ainsi:
8<------8<------8<------8<------8<------8<------8<------8<------8<------
find -type f >/dev/null || {
echo "Vous n'avez pas les droits suffisants etc...."
exit 1
}
8<------8<------8<------8<------8<------8<------8<------8<------8<------
mais ce n'est pas optimum car find parcourt toute l'arborescence alors
qu'il suffit de s'arrêter au premier « Permission denied ».
if [ -n "$firstwrong" ]; then
printf 'there are non-readable or non-executable directories such as %sn' "$firstwrong"
fi
Note que c'est censé faire la meme chose que ton test d'erreur
de find -type f. Mais find retournant une erreur ne veut pas
dire qu'on ne peut pas acceder certains fichiers.
Par exemple, on peut acceder aux fichiers dans un repertoire
executable et non-lisible, on ne peut pas lire le contenu de ce
repertoire, c'est tout.
je cherche à vérifier que l'arborescence courante est entièrement accessible (en lecture) à l'utilisateur qui lance un script. Le but est d'arrêter dès qu'un fichier/répertoire n'est pas accessible. Pour le moment je procède ainsi: 8<------8<------8<------8<------8<------8<------8<------8<------8<------ find -type f >/dev/null || { echo "Vous n'avez pas les droits suffisants etc...." exit 1 } 8<------8<------8<------8<------8<------8<------8<------8<------8<------
mais ce n'est pas optimum car find parcourt toute l'arborescence alors qu'il suffit de s'arrêter au premier « Permission denied ».
if [ -n "$firstwrong" ]; then printf 'there are non-readable or non-executable directories such as %sn' "$firstwrong" fi
Note que c'est censé faire la meme chose que ton test d'erreur de find -type f. Mais find retournant une erreur ne veut pas dire qu'on ne peut pas acceder certains fichiers.
Par exemple, on peut acceder aux fichiers dans un repertoire executable et non-lisible, on ne peut pas lire le contenu de ce repertoire, c'est tout.
-- Stéphane
Ph. Ivaldi
Le 28 juin 2009, Stephane CHAZELAS écrivit :
Avec GNU find: [code] on peut acceder aux fichiers dans un repertoire executable et non-lisible, on ne peut pas lire le contenu de ce repertoire, c'est tout.
Merci pour le code (-readable m'avait échappé) et pour cette précision. -- Philippe Ivaldi. http://piprim.tuxfamily.org/
Le 28 juin 2009, Stephane CHAZELAS écrivit :
Avec GNU find:
[code]
on peut acceder aux fichiers dans un repertoire
executable et non-lisible, on ne peut pas lire le contenu de ce
repertoire, c'est tout.
Merci pour le code (-readable m'avait échappé) et pour cette précision.
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Avec GNU find: [code] on peut acceder aux fichiers dans un repertoire executable et non-lisible, on ne peut pas lire le contenu de ce repertoire, c'est tout.
Merci pour le code (-readable m'avait échappé) et pour cette précision. -- Philippe Ivaldi. http://piprim.tuxfamily.org/