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.

luntain
la source

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.

whitequark
la source
3

Le système de fichiers est monté avec l'option noexec.

James Reinstate Monica Polk
la source
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.

pilona
la source