web-dev-qa-db-fra.com

Exécution d'un script au démarrage avec rc.local (autorisation refusée)

J'ai préparé une image et inclus dans /etc/rc.local une ligne permettant d'exécuter un script:

/path/to/myscript.sh

J'ai ensuite créé un script à cet endroit

Il contient un curl, pour télécharger et enregistrer un fichier en tant que nouveau fichier sur le système. Après cela, le fichier doit être exécuté.

Mon problème est le suivant:

Le contenu du script que j'ai inclus directement à rc.local avant et j'ai eu une erreur permission denied.
C’est la ligne qui télécharge un fichier de script et l’enregistre localement.

Maintenant, j'ai commencé à lire d'autres articles et tout est dit, il est préférable d'exclure des commandes dans un fichier script et de lancer le fichier script via rc.local uniquement.

Mais le problème des permissions persiste.

J'ai donc essayé de modifier ma ligne rc.local:

/path/to/myscript.sh # not working
Sudo /path/to/myscript.sh # not working

aussi dans mon script j'ai ajouté Sudo à chaque commande, cela ne fonctionne pas.

Actuellement, il semble que l'enregistrement avec un fichier ne soit pas autorisé. (Connexion Internet existe).

D'autres messages disent que je devrais installer un service. Maintenant, je pense que cela va surdimensionné et n'ont aucune garantie. J'ai besoin d'exécuter le script une seule fois au redémarrage. Dans le script, je dis à l'appareil de télécharger les scripts bash et de les exécuter.

Il semble donc que j'ai un problème de permission et que je ne sais pas comment le résoudre.

J'ai peut-être utilisé la mauvaise méthode pour exécuter un script après le démarrage.

Pourquoi ce problème se produit-il et comment le réparer?

2
stefan83
# ls test.sh
-rw-r--r-- 1 root root 0 nov 27 13:40 test.sh

# ./test.sh
-su: ./test.sh: permission denied

Résoudre:

# chmod +x test.sh

Changer test.sh pour /path/to/myscript.sh

4
Alonso Lara