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?

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

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


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

cd /path/to/target

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

chmod +x the_file_name

Tu dois donner execute et read autorisation. Suivez ceci:

chmod u+r+x filename.sh./filename.sh

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

Le bit d'exécution seul ne suffit pas pour les scripts shell, il faut aussi pouvoir lire le fichier pour l'exécuter (contrairement aux binaires qui n'ont besoin que du bit d'autorisation d'exécution)

Ouvrez votre application terminal en appuyant sur CTRL + ALT + T ou avec le raccourci approprié sur l'environnement graphique (comme Terminal ou xTerm).
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 entrer du texte (généralement des commandes) et appuyez sur ENTER pour confirmer l'entrée.
Avant le curseur, il y a toujours votre position actuelle sur le système de fichiers à partir du root directory ("/") et votre domicile (où se trouvent vos fichiers personnels) s'appelle"~".
Pour modifier l'utilisation du répertoire/dossier cd EXISTENTFOLDER (remplacez le dossier EXISTANT par le nom du dossier); si vous vous sentez perdu, tapez simplement cd pour revenir à votre répertoire personnel en un clin d'œil!
Maintenant résolvons votre problème:

  1. Utilisez le cd commande pour trouver le répertoire avec votre code source. Utiliser TAB pour t'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 courant. Ne jamais chmod + x fichiers dangereux ou non sécurisés.

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

  5. Rappelez-vous que si votre programme compilé essaie de lire / écrire en dehors de votre répertoire personnel, vous devrez l'exécuter comme root en utilisant sudo ./FILENAME YOUREVENTUALARGUMENTS.

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

Certains coquillages ont un Open terminal here commande pour vous simplifier la vie, recherchez-la à l'avenir et rappelez-vous que le shell de commande peut être votre meilleur ami, si vous l'utilisez bien. :- D

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

Bonne expérience sur Linux et Ubuntu.

L’erreur “Autorisation refusée” se produit uniquement si vous n’avez pas suffisamment de privilèges pour accéder à ce fichier.

Comment puis-je modifier les autorisations

Où est-ce que je fais ça, s’il te plaît, donne-moi un exemple de tir

Quand je fais cela, il me dit ce chmod: impossible d’accéder `geany_run_script.sh’: Aucun fichier ou répertoire de ce type. Dois-je l’exécuter à partir du terminal ou quoi?

duplication possible de Comment exécuter des fichiers. sh dans le Terminal?