J'ai installé Debian dans VirtualBox (pour diverses expériences qui ont généralement cassé mon système) et j'ai essayé de lancer le script du module complémentaire invité VirtualBox. Je me suis connecté en tant que root et j'ai essayé de lancer autorun.sh
, mais j'ai obtenu «Autorisation refusée». ls -l
montre que le script a des droits exécutables.
Désolé, je ne peux pas copier la sortie - VirtualBox n'a absolument aucune utilité sans l'addon, car ni un répertoire partagé, ni un presse-papiers partagé ne fonctionnent. Mais juste pour que vous soyez sûr, j'ai copié les droits à la main:
#ls -l ./autorun.sh
-r-xr-xr-x 1 root root 6966 Mar 26 13:56 ./autorun.sh
Au début, je pensais que le script pouvait exécuter quelque chose qui donnait l'erreur. J'ai essayé de remplacer /bin/sh
par quelque chose comme #/pathtorealsh/sh -xv
, mais je n'ai eu aucune sortie - il semble que le script ne puisse même pas être exécuté.
Je n'ai même aucune idée de ce qui pourrait en être la cause.
la source
mount | grep noexec
?noexec
ensemble. Vous pouvez probablement le poster comme réponse; en attendant j'essaye de le remonter avec un droit d'exécution. Hm, je ne savais même pas que le système de fichiers pouvait avoir un tel attribut.sh ./autorun.sh
ce qui se passe?Réponses:
Votre système de fichiers est peut-être monté avec un
noexec
jeu d'options, vous ne pouvez donc pas exécuter de fichiers exécutables. De la documentation de montage :Essayer:
Vérifiez ensuite si votre système de fichiers est répertorié en sortie.
Si oui, vous pouvez résoudre ce problème en remontant le système de fichiers avec l'
exec
option:la source
noexec
: "sh: 75: script.sh: Autorisation refusée"bash -x ./filename.filetype
devrait marcher. Cela a fonctionné pour moi lorsque j'ai obtenu une autorisation refusée en tant qu'utilisateur root.la source
noexec
option de montage, cela ne fonctionnera pas, car il pourrait y avoir plus de fichiers à exécuter; c'est-à-dire que lefilename.filetype
souffle coupé essayant d'exécuter d'autres fichiers à partir du même système de fichiers. Vous pouvez facilement le vérifier avec un test simplifié: créez un script à deux lignes qui affiche "bonjour", puis se rappelle simplement, mais ne définissez pas de droits exécutables. Si vous l'exécutez avec-x
, il afficherait "bonjour", mais la ligne d'appel récursive déclencherait une erreur.Ma solution à ce problème consiste à utiliser la source . J'étais sur un volume de stockage de données très importantes. Ce volume est monté en noexec. J'ai un script shell simple qui est exécutable mais qui a un problème d'autorisation.
Testé uniquement sur mon Ubuntu.
la source