Voer script uit op mac-prompt “Toestemming geweigerd”

Ik ben nieuw bij mac en ben niet bekend met de terminalopdracht, ik heb het bestand dvtcolorconvert.rbin de hoofdmap van mijn volume geplaatst, dit ruby-script kan xcode 3-thema’s converteren naar xcode 4-thema-indeling , wat de indeling xxxxxxxx.dvtcolorthemeis.

Voer vervolgens het script /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolorthemeuit op terminal, maar het is altijd de prompt “Toestemming geweigerd“.

wat is hier mis mee? Kan iemand mij helpen dit probleem op te lossen? Bedankt.


Antwoord 1, autoriteit 100%

Lees het hele antwoord voordat u probeert te starten met sudo

Probeer sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

uit te voeren

Het sudo commando voert de commando’s die erop volgen uit met ‘superuser’ of ‘root’ privileges. Dit zou je in staat moeten stellen om bijna alles vanaf de opdrachtregel uit te voeren. Dat gezegd hebbende, DOE DIT NIET!Als u een script op uw computer uitvoert en het niet nodig hebt om toegang te krijgen tot de kerncomponenten van uw besturingssysteem (ik vermoed dat u dat niet bent sinds u het script aanroepen op iets in uw homedirectory (~/)), dan zou het vanuit uw homedirectory moeten draaien, dat wil zeggen:

~/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

Verplaats het naar ~/ of een subdirectory en voer het vanaf daar uit. U mag daar nooit toestemmingsproblemen hebben en er is geen risico dat het toegang krijgt tot of iets wijzigt dat essentieel is voor uw besturingssysteem.

Als je nog steeds problemen hebt, kun je de machtigingen voor het bestand controleren door ls -luit te voeren in dezelfde map als het ruby-script. Je krijgt zoiets als dit:

$ ls -l  
total 13  
drwxr-xr-x    4 or019268 Administ    12288 Apr 10 18:14 TestWizard  
drwxr-xr-x    4 or019268 Administ     4096 Aug 27 12:41 Wizard.Controls  
drwxr-xr-x    5 or019268 Administ     8192 Sep  5 00:03 Wizard.UI  
-rw-r--r--    1 or019268 Administ     1375 Sep  5 00:03 readme.txt

Je zult merken dat het readme.txt-bestand -rw-r--r--aan de linkerkant zegt. Dit toont de rechten voor dat bestand. De 9 karakters van rechts kunnen worden opgesplitst in groepen van 3 karakters van ‘rwx’ (lezen, schrijven, uitvoeren). Als ik uitvoerrechten aan dit bestand wil toevoegen, zou ik chmod 755 readme.txtuitvoeren en dat gedeelte met machtigingen zou rwxr-xr-xworden. Ik kan dit bestand nu uitvoeren als ik dat wil door ./readme.txtuit te voeren (./ vertelt de bash om in de huidige map te zoeken naar de bedoelde opdracht in plaats van de $PATH-variabele te doorzoeken).

schluchczinspeelt op het kijken naar de man-pagina voor chmod, doe dit door man chmod. Dit is de beste manier om documentatie te krijgen over een bepaald commando, man <command>


Antwoord 2, autoriteit 90%

Heb je jezelf de rechten gegeven om het script uit te voeren?

Het volgende commando als supergebruiker zal dit voor je doen:

sudo chmod 755 'filename'

Voor details moet je de man-pagina van chmod lezen.


Antwoord 3, autoriteit 6%

In mijn geval had ik een stomme typfout gemaakt.

Dus voor het geval iemand anders met dikke vingers deze vraag tegenkomt:

Oeps: #!/usr/local/bin ruby

Ik wilde schrijven: #!/usr/bin/env ruby

De vage fout die ZSH geeft, stuurde me op het verkeerde pad:

ZSH: zsh: permission denied: ./foo.rb

Bash: bash: ./foo.rb: /usr/local/bin: bad interpreter: Permission denied


Antwoord 4, autoriteit 5%

Uitvoeren in de beheerdersmodus in mac

sudo su

Antwoord 5, autoriteit 4%

U moet het script uitvoeren als ‘superuser’, voeg gewoon ‘sudo’ toe voor de opdracht en typ uw wachtwoord wanneer daarom wordt gevraagd.

Dus probeer:

sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

Als dit niet werkt, probeer dan de rechten aan te passen:

sudo chmod 755 /dvtcolorconvert.rb
sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme

Antwoord 6, autoriteit 3%

gebruik bron voor bestandsnaam,,

zoals mijn bestand dat ik wil uitvoeren vanaf terminal is ./jay/bin/activate

dus ik gebruikte commando "source ./jay/bin/activate"


Antwoord 7

Controleer de machtigingen op uw Ruby-script (mogelijk geen uitvoeringsmachtiging), uw themabestand en map (voor het geval het het thema niet kan lezen of andere thema’s daarin probeert te maken), ende map waarin u zich bevindt wanneer u het script uitvoert (voor het geval het tijdelijke bestanden maakt in de huidige map in plaats van /tmp).

Elk van hen kan je verdriet bezorgen.

Other episodes