Impossible d'exécuter un script sur un lecteur externe monté


23

Le / mnt / ext est monté sur un système de fichiers ext2, un disque dur externe. Pour une raison quelconque, je ne peux pas exécuter de scripts à partir de là. Veuillez consulter la session ci-dessous.

luntain@plato /mnt/ext $ echo "echo success" > k.sh
luntain@plato /mnt/ext $ chmod 777 k.sh
luntain@plato /mnt/ext $ ./k.sh
-bash: ./k.sh: Permission denied
126luntain@plato /mnt/ext $ ll k.sh
-rwxrwxrwx 1 luntain luntain 13 Jan 23 15:08 k.sh*
luntain@plato /mnt/ext $ 

Je serais ravi de savoir pourquoi je vois l'erreur.

Réponses:


22

Il y avait probablement un noexecensemble d'attributs lorsque le système de fichiers a été monté; c'est peut-être votre «fonctionnalité» de distribution.

Pour le vérifier, vous pouvez exécuter mountqui affichera les options de montage entre parenthèses, et pour supprimer l' noexecindicateur que vous pouvez utiliser mount -o remount,exec /mnt/extsous root.

Assurez-vous également de placer l'option exec après l'option utilisateur, sinon le système montera toujours votre disque en tant que noexec.



3

Un système de fichiers monté noexecempêche uniquement l'exécution du script (c'est-à-dire demander au noyau de l'exécuter de manière appropriée sur la base d'un nombre magique ou d'une ligne de shebang). Cela ne vous empêche pas d'appeler un interprète sur un autre système de fichiers monté execet de passer le script en argument (ou sur stdin) audit interprète. Ergo, sinon root, vous auriez pu contourner cela avec juste sh k.sh.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.