122 votes

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

./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 ?

209voto

precise Points 14840

Voici un lien qui explique ce qu'il en est Modification de la permission (et de la propriété) d'un fichier

Si vous souhaitez les ignorer (pour l'instant, bien sûr), vous pouvez créer un répertoire/dossier dans votre répertoire d'origine et travailler sur votre site Web. C (ou d'autres) qui s'y trouvent.


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_du_fichier" le droit d'exécution (si le système de fichiers vous accorde les droits RW) :

chmod +x the_file_name

33voto

Jay Modi Points 581

Vous devez donner execute y read les permissions. Suivez ceci :

chmod u+r+x filename.sh

./filename.sh

Lorsque nous créons un nouveau fichier script alors par défaut il a les droits de lecture et d'écriture. Mais si nous voulons les exécuter, alors nous devons donner la permission d'exécution comme indiqué ci-dessus.

Le bit d'exécution seul ne suffit pas pour les Shell Shell, il faut pouvoir lire le fichier également pour l'exécuter (contrairement aux binaires qui n'ont besoin que du bit de permission execute).

2voto

Ouvrez votre application de terminal en appuyant sur CTRL + ALT + T ou avec le raccourci approprié dans l'environnement graphique (par ex. Terminal o xTerm ).
Dans la fenêtre uniforme qui apparaît à l'écran, vous verrez un caractère clignotant, c'est le terminal cursor : il suffit de cliquer sur la fenêtre et d'écrire pour saisir du texte (généralement des commandes) et d'appuyer sur ENTER pour confirmer la saisie.
Avant le curseur, il y a toujours une liste de votre position actuelle sur le système de fichiers à partir de l'écran d'accueil. 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 cd pour revenir à votre répertoire d'origine en un clin d'œil !
Maintenant résolvons votre problème :

  1. Utilisez le cd pour trouver le répertoire contenant votre code source. Utilisez TAB pour vous aider. Si vous exécutez ls -lh vous verrez une liste de chemins possibles à suivre et de fichiers à exécuter.

  2. Quand 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 les fichiers dangereux ou non sécurisés .

  4. Exécuter ./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 devrez l'exécuter en tant que root en 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).

Certaines coquilles ont un Open terminal here pour vous simplifier la vie, recherchez-la à l'avenir et rappelez-vous que la commande Shell peut être votre meilleure amie, 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 UP à gauche ; si vous résolvez, marquez cette réponse comme meilleure réponse.

Bonne expérience sur Linux et Ubuntu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins 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