Home
» MAC OS X
»
Hoe los je de foutmelding "Bestand kon niet worden uitgevoerd omdat je niet over de juiste toegangsrechten beschikt" op in macOS?
Hoe los je de foutmelding "Bestand kon niet worden uitgevoerd omdat je niet over de juiste toegangsrechten beschikt" op in macOS?
Als een vertrouwd .commandscript de foutmelding "Bestand kon niet worden uitgevoerd omdat u niet over chmod u+xde juiste toegangsrechten beschikt" geeft, heeft het meestal de uitvoerrechten nodig. Voeg in Terminal die rechten toe voor uw account met het commando `npm run ...
Controleer het bestand voordat u de machtigingen wijzigt.
Zorg ervoor dat het bestand daadwerkelijk eindigt op .commanden dat je weet waar het vandaan komt. Een commandoscript kan Terminal-opdrachten uitvoeren met de toegang van je account. Als je het bestand niet verwachtte of de bron ervan niet kunt verifiëren, voer het dan niet uit. Open het in een teksteditor om de inhoud te bekijken of vraag een schone kopie aan de ontwikkelaar.
Het Finder-venster 'Info' is handig om een bestandsnaam en algemene deelrechten te controleren, maar het biedt geen eenvoudige manier om een script uitvoerbaar te maken via de shell. Apple beschrijft in de Terminal-gebruikershandleidingchmod de Terminal-methode om een shellscript uitvoerbaar te maken .
Voorbeeld van een Finder-weergave van een .command-script in de map Downloads.
Corrigeer de uitvoeringsrechten.
Open Terminal. Gebruik Spotlight of ga naar Programma's > Hulpprogramma's > Terminal.
Geef je account uitvoerrechten. Voer voor een script in de map Downloads met de naam script.commandhet volgende commando in en druk op Enter:
chmod u+x "$HOME/Downloads/script.command"
Vervang de voorbeeldlocatie en bestandsnaam door het daadwerkelijke pad. Houd het pad tussen aanhalingstekens, vooral als een map of bestandsnaam spaties bevat. Je kunt ook het pad chmod u+x (inclusief de laatste spatie) typen en het bestand vanuit Finder naar het Terminalvenster slepen om het in te voegen. Typ niet letterlijk "pad naar bestand".
Het commando `chmod u+x` voegt uitvoerrechten toe voor de eigenaar van het bestand.
De opdracht keert normaal gesproken terug naar een prompt zonder een succesbericht weer te geven. ubetekent de eigenaar van het bestand en +xvoegt toestemming toe om het uit te voeren. Dit is een beperktere optie dan het script uitvoerbaar te maken voor elk account op de Mac. Het zou geen beheerderswachtwoord moeten vereisen als u de eigenaar van het bestand bent en de machtigingen ervan kunt wijzigen.
Voer het script uit. Als het in de map Downloads staat, typ dan:
cd "$HOME/Downloads"
./script.command
Je kunt ook dubbelklikken op het bestand in Finder nadat je de machtigingen hebt gewijzigd. Het uitvoeren vanuit Terminal is handig omdat je dan eventuele foutmeldingen of uitvoer kunt lezen. Als macOS een waarschuwing weergeeft wanneer je een opdracht in Terminal plakt, lees die waarschuwing dan voordat je verdergaat.
Voorbeeld van een terminalsessie na het uitvoeren van het script vanuit de bijbehorende map.
Controleer de machtigingen als de fout blijft bestaan.
Om de bestandsrechten te bekijken, voert u het volgende commando uit:
ls -l "$HOME/Downloads/script.command"
Wanneer het huidige account de eigenaar is van het bestand en de uitvoerrechten zijn ingesteld, moet de eerste machtigingsgroep een x, zoals , bevatten. De Mac-machtigingenhandleiding-rwx van Apple legt uit hoe de toegang tot bestanden en mappen verschilt tussen gebruikers.
Gebruik `ls -l` om te controleren of de eigenaarsrechtenreeks `x` bevat.
De opdracht geeft de melding "Bestand of map bestaat niet." Het pad of de bestandsnaam komt niet overeen. Controleer in Finder de naam en locatie en herhaal de opdracht vervolgens met het juiste pad.
Er staat 'Bewerking niet toegestaan' of 'Toegang geweigerd'. Mogelijk bent u niet de eigenaar van het bestand, of staat de toegang vanuit een bovenliggende map niet toe. Verplaats een kopie naar een map die wel van u is, zoals Downloads, of vraag de eigenaar van het bestand of uw Mac-beheerder om de toegangsrechten aan te passen. Vermijd het toevoegen van een kopie sudoals eerste stap.
Het bestand heeft uitvoerrechten, maar kan toch niet worden uitgevoerd. Controleer of het bestand een geldig script is en of de eerste regel een beschikbare interpreter bevat. Als het bericht verwijst naar een app die Apple niet kan controleren, een onbekende ontwikkelaar of malware, dan betreft dit een aparte Gatekeeper- of malwarewaarschuwing, en geen foutmelding over onvoldoende uitvoerrechten.
Verzwak de macOS-beveiliging niet om een bestandsmachtiging te herstellen.
Gebruik deze optie chmod a+xalleen als u andere lokale accounts opzettelijk uitvoerrechten wilt geven, en vermijd algemene opdrachten zoals chmod -Rof het wijzigen van machtigingen voor systeemmappen. Om de uitvoerrechten die u voor uw account hebt toegevoegd ongedaan te maken, voert u uit chmod u-x "$HOME/Downloads/script.command".
Volg bij een app-verificatiewaarschuwing de richtlijnen van Apple voor het veilig openen van apps, alleen wanneer u hebt bevestigd dat de app afkomstig is van een betrouwbare bron. Negeer geen waarschuwingen die aangeven dat software uw computer kan beschadigen of dat macOS malware heeft gedetecteerd. Apple beschrijft ook nieuwere beveiligingsfuncties voor het plakken in Terminal in de handleiding voor Terminal- en scriptbeveiliging .