Résolution de l'erreur zsh : Permissions refusées sous Linux ou macOS
L'erreur « zsh : permission refusée » se produit lorsque vous tentez d'exécuter une commande sous Linux ou macOS sans disposer des privilèges d'exécution nécessaires. Il peut s'agir d'une simple erreur comme l'exécution de la commande `ls` dans un répertoire pour lequel vous n'avez pas les droits d'écriture, ou l'exécution d'un script effectuant des actions auxquelles votre utilisateur n'est pas autorisé à accéder. Par « privilèges », nous entendons les permissions de lecture ou d'écriture.

Examinons la principale cause de cette erreur, puis nous pourrons essayer chaque solution pour voir laquelle est la meilleure.
Cette erreur se produit principalement lorsque vous ne disposez pas des autorisations d'exécution, d'écriture ou de lecture pour le fichier.
Supposons que vous soyez dans un shell Zsh sur un système d'exploitation Linux et que vous essayiez d'afficher le contenu d'un fichier à l'aide de la commande « cat », mais que vous receviez une erreur « permission refusée ».

Pour corriger cette erreur, nous devons d'abord vérifier les permissions du fichier. Nous exécutons « ls -l » Pour consulter les autorisations.

Comme vous pouvez le constater, les permissions sont telles que seuls l'utilisateur root et le groupe root peuvent lire le fichier, tandis que seul l'utilisateur root peut y écrire.
1. Utilisation de sudo
Pour remédier à cela, la solution la plus simple consiste à utiliser 'sudo' Avec la commande que nous souhaitons exécuter. Cela exécutera la commande en tant qu'utilisateur root. Dans votre cas, vous pouvez également utiliser « sudo » si vous êtes certain que la commande ou la tâche que vous souhaitez exécuter ne risque pas d'endommager votre ordinateur.
Nous pouvons donc fonctionner :

fichier de cat sudo
2. Modification des permissions du ou des fichiers
L'étape suivante consiste à modifier les permissions du fichier. L'erreur « Permission refusée » étant généralement due à un problème de permissions de lecture ou d'écriture, nous pouvons modifier les permissions du ou des fichiers concernés.

En mettant en œuvre 'ls -l' Dans le répertoire où se trouve le fichier, nous pouvons voir que le propriétaire du fichier et son groupe sont root.
Nous pouvons changer le propriétaire du fichier pour notre utilisateur et ensuite faire ce que nous voulons avec celui-ci.

Nous pouvons fonctionner :
sudo chown [utilisateur] [nom-de-fichier]
Dans notre exemple, puisque v3n0m est l'utilisateur avec lequel nous nous sommes connectés, nous allons exécuter la commande comme suit :
sudo chown v3n0m fichier
v3n0m est notre nom d'utilisateur. Dans votre cas, ce serait votre nom d'utilisateur.
Nous pouvons maintenant exécuter la commande cat sur le fichier car elle ne générera plus d'erreur. permission refusée.
3. Renforcer les pouvoirs d'exécution
Vous pouvez utiliser `./` suivi d'un nom de fichier dans Zsh ou d'autres interpréteurs de commandes pour exécuter un fichier comme un programme. Toutefois, si les permissions d'exécution ne sont pas définies pour le fichier, vous recevrez une erreur « zsh : permission refusée ».

Supposons que nous voulions exécuter un script appelé script1. Nous tapons ./script1 dans notre terminal et obtenons cette erreur :
Nous utilisons la commande `ls -la` sur le fichier pour vérifier ses permissions. Comme vous pouvez le constater, les permissions d'exécution ne sont pas définies.
La solution est simple : ajouter les autorisations d’exécution au fichier.
Nous émettons un ordre simple

chmod +x script1
Il ajoutera `chmod + x` Mise en œuvre على Autorisations d'accès aux fichiers pour le propriétaire, le groupe et les autres.
Nous pouvons maintenant exécuter le fichier comme un programme en tapant `./script1Sans aucune erreur.
Cette erreur devrait se résoudre d'elle-même si vous la rencontrez sous Linux ; toutefois, si vous rencontrez cette erreur sous macOS ou Gradle, poursuivez la lecture de l'article.
Modifiez votre fichier zshrc (macOS)
Certains utilisateurs de macOS ont signalé un problème lors de l'utilisation de `zsh` lorsqu'ils ne se trouvent pas dans le répertoire à partir duquel ils souhaitent exécuter une commande.
Si vous rencontrez un problème similaire, la solution est très simple.
Vous devez modifier le fichier `.zshrcDans le guideaccueil/nom d'utilisateurAjoutez votre propre fichier et ajoutez-le à la fin du fichier.
setopt auto_cd
Cela permettra àauto_cd` dans `zsh`.
Pour modifier un fichier.zshrc`, vous pouvez utiliser n'importe quel éditeur de texte graphique ou éditeur de texte en ligne de commande tel que `vim` ou `vi`.
Utilisation de la commande CHMOD pour définir les permissions (Gradle)
L’erreur « zsh : permission refusée » peut se produire si vous travaillez avec Gradle et que votre fichier `gradlew` ne dispose pas des permissions correctes.
Pour corriger cette erreur, vous devez configurer Les permissions correctes sur gradlew.
Vous pouvez saisir cette commande dans votre terminal.
chmod 755 gradlew
Cela rendra le fichier `GradlewC'est faisable et 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 ne vous convient, n'hésitez pas à laisser un commentaire ci-dessous et notre technicien se fera un plaisir de vous aider prochainement.
Les commentaires sont fermés.