126 votes

Erreur de terminal : zsh : permission denied : ./startup.sh

J'exécute une commande ./startup.sh nginx:start et je reçois ce message d'erreur zsh: permission denied: ./startup.sh pourquoi cela peut-il arriver ?

1 votes

Vérifiez que vous n'essayez pas d'exécuter un répertoire appelé "./startup.sh".

242voto

Andrea Golin Points 1973

Assurez-vous de lui donner la permission d'exécution.

cd ~/the/script/folder

chmod +x ./startup.sh

Cela donnera la permission d'exécuter à l'utilisateur, au groupe et à d'autres, donc attention aux problèmes de sécurité possibles. Pour restreindre la permission à une seule classe d'accès, vous pouvez utiliser :

chmod u+x ./startup.sh

Ceci accordera la permission d'exécuter seulement à l'utilisateur

A titre de référence

2 votes

Si quelqu'un a ce problème avec les liens symboliques, je viens d'avoir le problème où un lien symbolique avait la permission d'exécution, mais le fichier original ne l'avait pas. Cela peut sembler évident, mais assurez-vous que le fichier d'origine a aussi la permission :facepalm :

1 votes

Y a-t-il un risque de sécurité à faire cela ?

2 votes

@ScottyBlades vous soulevez un point juste, bien sûr rendre un fichier exécutable pourrait conduire à un problème de sécurité, en fonction de ce qui se trouve dans le fichier. L'utilisation de chmod +x donne le droit d'exécution à l'utilisateur, au groupe et à tous. Si vous voulez accorder l'autorisation d'exécution à une classe d'accès spécifique, vous pouvez la passer comme paramètre avant +x. Par exemple, pour donner l'autorisation d'exécution uniquement à l'utilisateur, vous pouvez faire chmod u+x ./script.sh

40voto

Gefilte Fish Points 518

Vous pouvez également utiliser bash :

bash startup.sh

Alors vous n'avez pas besoin de permission d'exécution.

Dans MacOS Catalina, Apple a remplacé bash par zsh comme shell par défaut. Cela peut signifier qu'ils ont l'intention de supprimer bash à l'avenir, donc cela pourrait ne plus être une option plus tard, mais avec Catalina cela fonctionne toujours.

7voto

Suraj Pawar Points 49

Démarrer avec macOS Catalina , Votre Mac utilise zsh comme shell de connexion et shell interactif par défaut. Vous pouvez également faire de zsh l'interpréteur de commandes par défaut dans les versions antérieures de macOS.

Comment changer votre shell par défaut Que votre compte utilisateur soit configuré pour utiliser zsh (recommandé), bash ou un autre interpréteur de commandes, vous pouvez modifier l'interpréteur de commandes par défaut à partir des préférences de Users & Groups ou de la ligne de commande.

  1. Dans les préférences Utilisateurs & Groupes
  2. Choisissez le menu Apple > Préférences système, puis cliquez sur Utilisateurs et groupes.
  3. Cliquez sur le verrou, puis saisissez votre nom de compte et votre mot de passe.
  4. Contrôlez-cliquez sur votre nom d'utilisateur dans la liste des utilisateurs à gauche, puis choisissez Options avancées.
  5. Choisissez un shell dans le menu "Login shell", puis cliquez sur OK pour enregistrer les modifications.

Suivez le lien pour plus de détails - https://support.apple.com/en-in/HT208050

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X