Corriger l'erreur "zsh : permission refusée" sous Linux ou macOS

Corriger l'erreur
Index

L'erreur "Zsh permission denied" survient lorsque les permissions d'exécution sur un fichier manquent. Ce guide propose des solutions pour corriger ce problème sur Linux et MacOS.

L'erreur "Zsh permission denied" se produit lorsque vous essayez d'exécuter une commande sur Linux ou Mac pour laquelle vous n'avez pas les permissions d'exécution. La commande pourrait être aussi simple que d'effectuer un 'ls' dans un répertoire pour lequel vous n'avez pas les permissions d'écriture ou d'exécuter un script qui effectue des actions que votre utilisateur n'est pas autorisé à faire. Par permissions, nous faisons référence aux permissions de lecture ou d'écriture.

Examinons d'abord la cause principale de cette erreur, puis nous pourrons essayer chaque solution pour voir laquelle fonctionne le mieux.

Cette erreur se produit principalement lorsque vous n'avez pas les droits d'exécution, d'écriture ou de lecture sur le fichier.

Supposons que nous soyons dans un shell Zsh sous un système d'exploitation Linux et que vous essayiez de lister le contenu d'un fichier en utilisant 'cat', mais vous recevez une erreur 'permission denied'.

Pour résoudre cette erreur, nous devons d'abord lister les permissions du fichier. Nous exécutons “ls -l” pour voir les permissions.

Comme vous pouvez le voir, les permissions sont telles que seul l'utilisateur root et le groupe root peuvent lire le fichier, tandis que l'utilisateur root peut uniquement écrire dans le fichier.

1. Utiliser sudo

Pour corriger cela, la solution la plus simple serait d'utiliser 'sudo' avec la commande que nous voulons exécuter. Cela exécutera la commande en tant qu'utilisateur root. Dans votre cas également, vous pouvez utiliser 'sudo' lorsque vous êtes sûr que la commande que vous souhaitez exécuter ou la tâche que vous voulez accomplir ne nuira pas à votre ordinateur.

Nous pouvons donc exécuter :

sudo cat file

2. Changer les permissions du fichier ou des fichiers

La prochaine chose que nous pouvons faire est de changer les permissions du fichier. Étant donné que l'erreur de permission refusée est généralement causée par des permissions de lecture ou d'écriture, nous pouvons changer les permissions de ce fichier ou de ces fichiers particuliers.

En exécutant 'ls -l' dans le répertoire où se trouve le fichier, nous pouvons voir que le propriétaire et le groupe du fichier sont root.

Nous pouvons changer le propriétaire en notre utilisateur et ensuite faire ce que nous voulons faire avec le fichier.

Nous pouvons exécuter :

sudo chown [user] [file-name]

Dans notre exemple, comme v3n0m est l'utilisateur sous lequel nous sommes connectés, nous allons émettre la commande comme suit :

sudo chown v3n0m file

v3n0m ici est notre utilisateur. Dans votre cas, ce serait votre nom d'utilisateur.

Maintenant, nous pouvons exécuter cat sur le fichier car cela ne nous donnera plus une erreur de permission refusée.

3. Activer les permissions d'exécution

Vous pouvez utiliser ./ avec un nom de fichier dans zsh ou d'autres shells pour exécuter un fichier en tant que programme. Mais si les permissions d'exécution ne sont pas définies sur un fichier, il vous donnera l'erreur zsh : permission denied.

Disons que nous voulons exécuter un script appelé script1. Nous tapons ./script1 dans notre terminal et cela nous donne cette erreur :

Nous faisons ls -la sur le fichier pour voir les permissions. Comme vous pouvez le voir, les permissions d'exécution sur le fichier ne sont pas définies.

La solution ici est simple, ajoutez les permissions d'exécution sur le fichier.
Nous émettons une commande simple

chmod +x script1

chmod +x ajouterait le bit d'exécution sur les permissions du fichier pour le propriétaire, le groupe ainsi que les autres.

Maintenant, nous pouvons exécuter le fichier en tant que programme en tapant ./script1 sans aucune erreur.

Cela devrait corriger l'erreur si vous la rencontrez sur Linux, cependant, si vous rencontrez cette erreur sur MacOS ou Gradle, continuez à suivre l'article.

Modifier votre fichier zshrc (macOS)

Certaines utilisateurs ont rapporté qu'ils avaient des problèmes sur MacOS utilisant zsh lorsqu'ils ne sont pas dans le répertoire à partir duquel ils souhaitent exécuter une commande.

Si vous rencontrez un problème similaire, la solution est vraiment simple.

Vous devez éditer votre fichier .zshrc dans votre répertoire home/username et ajouter ceci à la fin du fichier.

setopt auto_cd

Cela activera l'option de auto_cd dans zsh.

Pour éditer le fichier .zshrc, vous pouvez utiliser n'importe quel éditeur de texte graphique ou un éditeur de texte en ligne de commande comme vim ou vi.

Utiliser la commande CHMOD pour définir des permissions (Gradle)

L'erreur zsh permission denied peut se produire si vous travaillez sur gradle et que le fichier gradlew n'a pas les bonnes permissions.

Pour résoudre ce problème, vous devez définir les bonnes permissions sur gradlew.

Vous pouvez taper cette commande dans votre terminal :

chmod 755 gradlew

Cela rendra le fichier gradlew exécutable.

L'erreur sera corrigée.

Ou vous pouvez simplement taper cette commande chmod +x gradlew

Cela rendra également le fichier gradlew exécutable.

Si aucune de ces solutions n'a fonctionné pour vous, n'hésitez pas à commenter ci-dessous et notre technicien se fera un plaisir de vous aider rapidement.

Maintenant que tu as fini de lire Corriger l'erreur "zsh : permission refusée" sous Linux ou macOS, nous t'invitons à explorer davantage la catégorie Linux. Tu y trouveras d'autres articles intéressants qui élargiront tes connaissances et te tiendront informé. Ne cesse pas de lire et de découvrir plus!

Go up