Javascript-toestemming geweigerd

| | | | | | | |

Bestanden op een besturingssysteem hebben meestal machtigingen, waardoor het bestand toegankelijk is voor een beperkt aantal mensen. Sommige bestanden op een computer zijn bijvoorbeeld alleen toegankelijk voor beheerders; andere bestanden zijn alleen toegankelijk voor een specifieke gebruiker.

Als u een bestand probeert uit te voeren waartoe u geen toegang hebt op een Linux-machine, ziet u een toestemming geweigerd fout. In deze handleiding zullen we het hebben over de oorzaak van deze fout en hoe u deze kunt oplossen. Laten we beginnen.

Bash-toestemming geweigerd

Bash toestemming geweigerd-fout treedt op wanneer u een bestand probeert uit te voeren dat geen toestemming heeft om uit te voeren. Dit kan gebeuren als een bestand alleen kan worden uitgevoerd door een bepaalde gebruiker of groep waarvan u geen lid bent.

Op een Linux-besturingssysteem zijn er drie soorten machtigingen:

Het is mogelijk dat u een bestand mag lezen en schrijven zonder uitvoeringsrechten te hebben. Daarom, als je een Bash-toestemming geweigerd tegenkomt, controleer dan of je toestemming hebt om het bestand uit te voeren. U kunt controleren of u machtigingen heeft voor een bestand met het volgende commando:

ls -la

Dit commando geeft informatie over bestandsrechten. We bespreken de uitvoer van deze opdracht in onze sectie De oplossing verderop in het artikel. Laten we eens kijken naar een voorbeeldscenario met de fout toestemming geweigerd, met een bijbehorende oplossing.

Een voorbeeldscenario

We hebben een bestand met de naam voorbeeld. SCH. We kunnen dit bestand zien door de opdracht ls uit te voeren. De opdracht ls retourneert het volgende:

We willen ons bestand example.sh uitvoeren. Om dit te doen, kunnen we de notatie ./:

Met deze opdracht kunnen we het bestand example.sh uitvoeren dat aanwezig is in onze ./-directory (de directory die we momenteel bekijken). Laten we eens kijken wat er gebeurt als we het bestand proberen uit te voeren:

Onze opdracht retourneert een fout.

De Oplossing

Onze Bash-shell vertelt ons dat we geen toestemming hebben om ons bestand uit te voeren. We kunnen controleren de rechten die we hebben door het ls -la commando uit te voeren:

We hebben geen privileges om draaien op een van onze bestanden. Als er een x na rw in de eerste invoer van de bovenstaande uitvoer stond, zouden we weten dat we ons bestand kunnen uitvoeren. De drie tekens na de eerste vertegenwoordigen lees-, schrijf- en uitvoeringsrechten voor een gebruiker. Onze groep heeft ook geen schrijf- of uitvoeringsrechten.

Om dit probleem op te lossen, moeten we onszelf uitvoeringsrechten toekennen:

Dit commando geeft onze gebruiker uitvoeringsrechten ("x") voor het voorbeeld. sh-bestand.

We kunnen deze opdracht alleen uitvoeren als we de rechten van het bestand mogen wijzigen. Als dit bestand beveiligd was (bijvoorbeeld eigendom van root), zouden we dit bestand niet kunnen bewerken.

Het bestand is eigendom van systeemgebruiker james zodat ik bestandsrechten op mijn james-account kan wijzigen. Ik zou ook sudo kunnen gebruiken om de privileges van de bestanden te wijzigen, hoewel dit niet nodig is omdat mijn gebruikersaccount de nodige toegang heeft.

Conclusie

De Bash toestemming geweigerd geeft aan dat u een bestand probeert uit te voeren waarvoor u geen toestemming heeft. Om dit probleem op te lossen, gebruikt u de opdracht chmod u + x om uzelf machtigingen te geven. Als u deze opdracht niet kunt gebruiken, moet u mogelijk contact opnemen met uw systeembeheerder om toegang te krijgen tot een bestand.

Wil je meer weten over Bash? Bekijk dan onze Gids voor het leren van de opdrachtregel < /a>. bevat de beste tips om Bash te leren. Je vindt er ook een lijst met bronnen om je leertraject te versnellen.