web-dev-qa-db-fra.com

Autorisation refusée lors de l'exécution de scripts .sh

./geany_run_script.sh: 5: ./geany_run_script.sh: ./Area_circumference: Permission denied

program exited with code: 126. Ce problème se produit toujours lorsque j'essaie d'exécuter mon code. Quelle pourrait être la solution?

58
wkhwilo

Voici un lien qui explique à propos de Modification de l'autorisation de fichier (et de la propriété)

Si vous voulez les ignorer (bien sûr pour l'instant), vous pouvez créer un répertoire/dossier dans votre répertoire personnel et y travailler sur vos programmes C (ou autres).


Vous pouvez ouvrir le terminal (appuyez sur Ctrl + Alt + T) et cd dans le répertoire cible:

cd /path/to/target

Pour donner au fichier "nom_fichier_fichier" l'autorisation d'exécution (si le système de fichiers le permet avec les droits RW):

chmod +x the_file_name
104
precise

Vous devez uniquement donner une autorisation d'exécution. Suivez ceci:

    chmod +x filename.sh
    ./filename.sh

Lorsque nous créons un nouveau fichier de script, il dispose par défaut des autorisations de lecture et d'écriture. Mais si nous voulons les exécuter, nous devrions alors donner l’autorisation d’exécuter comme indiqué ci-dessus.

18
Jay Modi

Ouvrez votre application de terminal en appuyant sur CTRL+ ALT+ Tou avec le raccourci correspondant sur l'environnement graphique (comme Terminalou xTermname__).
Dans la fenêtre uniforme qui apparaît à l’écran, vous verrez un caractère clignotant, c’est le terminal cursor: cliquez simplement sur la fenêtre et écrivez pour saisir du texte (généralement des commandes) et appuyez sur ENTERpour confirmer la saisie.
Avant le curseur, votre position actuelle dans le système de fichiers est toujours listée du root directory ("/") et votre domicile (où se trouvent vos fichiers personnels) est appelé "~".
Pour changer de répertoire/dossier, utilisez cd EXISTENTFOLDER (remplacez EXISTENTFOLDER par le nom du dossier); si vous vous sentez perdu, tapez simplement cdpour revenir à votre répertoire personnel en un clin d'œil!
Maintenant résolvons votre problème:

  1. Utilisez la commande cdpour rechercher le répertoire avec votre code source. Utilisez TABpour vous aider. Si vous exécutez ls -lh, vous verrez une liste des chemins possibles à suivre et des fichiers à exécuter.

  2. Lorsque vous avez trouvé le fichier bloqué, exécutez chmod +x FILENAME (remplacez FILENAME par le nom de votre fichier de code source).

  3. Si vous avez plusieurs fichiers bloqués, exécutez chmod +x * pour déverrouiller tous les fichiers du répertoire en cours. Jamais chmod + x fichiers dangereux ou non sécurisés.

  4. Exécutez ./FILENAME YOUREVENTUALARGUMENTS pour exécuter votre fichier exécutable.

  5. N'oubliez pas que si votre programme compilé tente de lire/écrire en dehors de votre répertoire personnel, vous devez l'exécuter sous le nom rooten utilisant Sudo ./FILENAME YOUREVENTUALARGUMENTS.

Si vous voulez avoir un manuel pour une commande, exécutez man COMMAND (remplacez COMMAND par le nom exact de la commande, Linux est sensible à la casse).

Certains shells ont une commande Open terminal here pour vous simplifier la vie, cherchez-la plus tard et rappelez-vous que la commande Shell peut être votre meilleur ami, si vous l'utilisez bien. :-RÉ

C'est tout. Si vous avez besoin de plus d’aide, commentez ici.
Si je vous aide, appuyez sur la flèche HAUT à gauche; si vous résolvez, marquez cette réponse comme meilleure réponse.

Avoir une belle expérience sur Linux et Ubuntu.

2
Lorenzo Ancora