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

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

wkhwilo
la source
1
Permission deniedLes erreurs se produisent uniquement si vous ne disposez pas de privilèges suffisants pour accéder à ce fichier.
Avinash Raj
Comment puis-je changer les autorisations
wkhwilo le
Où puis-je faire cela s'il vous plaît donnez-moi un exemple de coup
wkhwilo
Lorsque je fais cela, il me dit que chmod: ne peut pas accéder à 'geany_run_script.sh': Aucun fichier ou répertoire de ce type. Dois-je l'exécuter à partir du terminal ou quoi?
Wkhwilo
duplication possible de Comment exécuter les fichiers .sh dans Terminal?
Eliah Kagan

Réponses:

118

Voici un lien qui explique la modification de l'autorisation (et de la propriété) d'un fichier

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 y travailler sur vos Cprogrammes (ou autres).


Vous pouvez ouvrir le terminal (appuyez sur Ctrl+ Alt+ T) et cddans 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
précis
la source
Comment puis-je changer les autorisations des exemples
wkhwilo
Le problème, comment puis-je faire cela? Je suis un nouvel utilisateur Ubuntu que je suis récemment passé de Windows.
Wkhwilo
..Quel est votre répertoire de travail à savoir. quel est l'emplacement de votre fichier de code source? .. avez-vous une certaine expérience avec Windows CLI?
précis
@ wkhwilo-012, voyez si cela aide et s'il vous plaît n'hésitez pas à demander plus ..
précise
@ wkhwilo-012, s'il vous plaît copiez votre fichier exécutable Area_circumferenceet le coller (le chemin du fichier sera collé) pour mettre à jour le corps de votre question ...
précise
20

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.

Jay Modi
la source
2

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

  1. Utilisez la cdcommande pour trouver 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-le chmod +x FILENAME(remplacez FILENAME par le nom de votre fichier de code source).

  3. Si vous avez plusieurs fichiers bloqués, exécutez-les 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 YOUREVENTUALARGUMENTSpour exécuter votre fichier exécutable.

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

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

Certains coquillages ont une Open terminal herecommande pour vous simplifier la vie, cherchez-la plus tard et rappelez-vous que la coquille de commande 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 vers le haut sur la gauche; si vous résolvez, marquez cette réponse comme meilleure réponse.

Bonne expérience sur Linux et Ubuntu.

Lorenzo Ancora
la source
Merci beaucoup. Maintenant, je peux travailler dans le répertoire personnel. L'opération que vous m'avez demandée plus tôt ne peut être autorisée. Il dit que je n'ai pas la permission mais merci quand même pour la suggestion.
Wkhwilo