3 votes

Autorisations de script shell pour Android ?

J'ai un téléphone rooté, et je jouais avec l'émulateur de terminal. J'ai essayé d'écrire un simple script shell (test.sh) :

#!/bin/sh
echo "Hello, World!" 

Puis j'ai ouvert l'émulateur de terminal, je me suis rendu dans le répertoire où se trouvait mon script et j'ai tapé :

./test.sh

et j'ai eu une erreur "permission denied". Alors j'ai essayé :

su
./test.sh

D'une manière ou d'une autre, la permission est toujours refusée. J'ai donc essayé (toujours en tant que Root) :

chmod 775 test.sh
busybox chmod 775 test.sh
busybox chmod +X test.sh

Aucun des 3 n'a donné d'erreur, mais ./test.sh a toujours donné une permission refusée ! En dernier recours, j'ai essayé

sh test.sh

Ça a fini par marcher. Enfin.

Je suis curieux de savoir pourquoi la permission a été refusée pour mon propre script shell chmodé à 775 lorsqu'il est exécuté en tant que Root. Comment la permission peut-elle être refusée pour quelque chose en tant que Root ? Comment puis-je corriger cela et faire fonctionner ./test.sh ?

3voto

Nick Pierpoint Points 7976

Les droits d'exécution sur la SDCard sont bloqués pour cette raison.

Voir ça :

/dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,**noexec**,relatime,uid=1000,gid=1015,fmask=0602,dmask=0602,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

Le site noexec La partie de cette ligne soulignée par deux astérisques est la clé pour empêcher toute exécution de scripts/binaires depuis la SDCard.

J'ai l'impression qu'on a déjà répondu à cette question... déjà vu.

Modifier

Yup @Izzy a répondu este avant et これ également.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X