Het oplossen van de zsh-fout: Toegang geweigerd in Linux of macOS
De foutmelding "zsh: permission denied" treedt op wanneer u een commando probeert uit te voeren op Linux of Mac en u niet over de benodigde uitvoeringsrechten beschikt. Dit kan iets simpels zijn, zoals het uitvoeren van `ls` in een map waar u geen schrijfrechten hebt, of het uitvoeren van een script dat acties uitvoert waarvoor uw gebruiker geen autorisatie heeft. Met "rechten" bedoelen we lees- of schrijfrechten.

Laten we eerst de hoofdoorzaak van deze fout bekijken, en daarna kunnen we elke oplossing uitproberen om te zien welke het beste werkt.
Deze fout treedt vooral op wanneer u geen uitvoer-, schrijf- of leesrechten voor het bestand hebt.
Stel, we bevinden ons in een Zsh-shell op een Linux-besturingssysteem en we proberen de inhoud van een bestand te bekijken met 'cat', maar we krijgen een foutmelding 'toegang geweigerd'.

Om deze fout te herstellen, moeten we eerst de bestandsrechten bekijken. We voeren "ls -l" uit om de rechten te zien.

Zoals je kunt zien, zijn de machtigingen zodanig ingesteld dat alleen de root-gebruiker en de root-groep het bestand kunnen lezen, terwijl alleen de root-gebruiker erin kan schrijven.
1. Gebruik maken van sudo
Om dit op te lossen, is de eenvoudigste oplossing om 'sudo' te gebruiken in combinatie met de opdracht die je wilt uitvoeren. Hiermee wordt de opdracht uitgevoerd als root-gebruiker. In jouw geval kun je 'sudo' ook gebruiken als je er zeker van bent dat de opdracht of taak die je wilt uitvoeren geen schade aan je computer zal toebrengen.
Wij kunnen daarom het volgende doen:

sudo cat bestand
2. De machtigingen van het bestand of de bestanden wijzigen
De volgende stap is het wijzigen van de bestandsrechten. Aangezien de foutmelding 'toegang geweigerd' meestal wordt veroorzaakt door onvoldoende lees- of schrijfrechten, kunnen we de rechten van dit bestand of de betreffende bestanden aanpassen.

Door 'ls -l' uit te voeren in de map waar het bestand zich bevindt, kunnen we zien dat de eigenaar van het bestand en de bijbehorende groep root zijn.
We kunnen de eigenaar wijzigen naar onze gebruiker en vervolgens doen wat we willen met het bestand.

Wij kunnen het volgende uitvoeren:
sudo chown [gebruiker] [bestandsnaam]
In ons voorbeeld, aangezien v3n0m de gebruiker is waarmee we zijn ingelogd, voeren we het commando als volgt uit:
sudo chown v3n0m file
v3n0m is onze gebruikersnaam. In jouw geval zou dat jouw gebruikersnaam zijn.
Nu kunnen we het commando `cat` op het bestand uitvoeren, omdat we geen foutmelding meer krijgen over geweigerde toegang.
3. Handhavingsbevoegdheden mogelijk maken
Je kunt in Zsh of andere shells ./ met een bestandsnaam gebruiken om een bestand als programma uit te voeren. Als de uitvoerrechten voor het bestand echter niet zijn ingesteld, krijg je de foutmelding 'zsh: permission denied'.

Stel, we willen een script genaamd script1 uitvoeren. We typen ./script1 in onze terminal en krijgen deze foutmelding:
We voeren `ls -la` uit op het bestand om de machtigingen te bekijken. Zoals je kunt zien, zijn de uitvoeringsrechten voor het bestand niet ingesteld.
De oplossing is simpel: geef het bestand uitvoerrechten.
Wij geven een eenvoudig bevel uit.

chmod +x script1
` chmod +x` voegt de uitvoerbare bit toe aan de bestandsrechten voor de eigenaar, de groep en anderen.
Nu kunnen we het bestand als programma uitvoeren door ` ./ script1` te typen, zonder foutmelding.
Deze fout zou zichzelf moeten oplossen als je hem op Linux tegenkomt; als je deze fout echter op macOS of met Gradle tegenkomt, lees dan verder in dit artikel.
Bewerk je zshrc-bestand (macOS)
Sommige macOS-gebruikers hebben een probleem gemeld bij het gebruik van `zsh` wanneer ze zich niet in de map bevinden van waaruit ze een commando willen uitvoeren.
Mocht u een soortgelijk probleem tegenkomen, dan is de oplossing heel eenvoudig.
Je moet het ` .zshrc`- bestand in je ` home/gebruikersnaam`- directory aanpassen en dit aan het einde van het bestand toevoegen.
setopt auto_cd
Dit activeert de ` auto_cd`- optie in `zsh`.
Om een ` .zshrc`- bestand te bewerken , kunt u elke grafische teksteditor of opdrachtregel-teksteditor gebruiken, zoals `vim` of `vi`.
De CHMOD-opdracht gebruiken om machtigingen in te stellen (Gradle)
De foutmelding "zsh: permission denied" kan optreden als u met Gradle werkt en uw `gradlew`-bestand niet de juiste machtigingen heeft.
Om deze fout te verhelpen, moet u de juiste machtigingen instellen voor Gradlew.
Je kunt dit commando in je terminal typen,
chmod 755 gradlew
Hierdoor wordt het ` gradlew`- bestand uitvoerbaar en wordt de fout verholpen.
Of je kunt gewoon dit commando typen: ` chmod +x gradlew`
Hierdoor wordt het bestand `gradlew` ook uitvoerbaar.
Als geen van deze oplossingen werkt, laat dan gerust een reactie achter en onze technicus helpt u graag zo snel mogelijk verder.
Reacties zijn gesloten.