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 controleren. We voeren het volgende commando uit: “ls -l” Om de machtigingen te bekijken.

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 gebruik te maken van 'sudo' Met het commando dat we willen uitvoeren. Dit zal het commando uitvoeren als root-gebruiker. In uw geval kunt u ook 'sudo' gebruiken als u er zeker van bent dat het commando dat u wilt uitvoeren of de taak die u wilt uitvoeren geen schade aan uw 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 te implementeren 'ls -l' 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 bestand met `cat` bewerken, want het geeft geen foutmelding meer. toestemming geweigerd.
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
Hij zal toevoegenchmod + x` Uitvoering على Bestandsrechten voor eigenaar, groep en anderen.
Nu kunnen we het bestand als programma uitvoeren door ` te typen./script1Zonder enige fout.
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 bestand bewerken..zshrcIn de handleidinghome/gebruikersnaamVoeg dit zelf toe aan het einde van het bestand.
setopt auto_cd
Dit zal de `auto_cd` in `zsh`.
Om een bestand te bewerken.zshrcJe kunt 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 herstellen, moet u het volgende instellen: De juiste machtigingen voor gradlew.
Je kunt dit commando in je terminal typen,
chmod 755 gradlew
Dit zorgt ervoor dat het bestand `gradlewHet is haalbaar en de fout zal worden gecorrigeerd.
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.