it-swarm.com.de

Führen Sie das Skript auf dem Mac aus. Eingabeaufforderung "Berechtigung verweigert"

Ich bin neu auf dem Mac mit nicht vertraut auf Terminal-Befehl, ich habe die dvtcolorconvert.rb Datei im Stammverzeichnis meines Volumes, dieses Ruby) Skript kann xcode 3 Themes in das xcode 4 Themes Format konvertieren, welches xxxxxxxx.dvtcolortheme Format.

Führen Sie dann das Skript /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme am Terminal, aber es ist immer Eingabeaufforderung "Berechtigung verweigert".

was ist daran falsch? Kann mir jemand bei der Lösung dieses Problems helfen? Vielen Dank.

54
Andy_24

Bitte lesen Sie die gesamte Antwort, bevor Sie versuchen, mit Sudo zu starten.

Versuchen Sie es mit Sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

Der Befehl "Sudo" führt die folgenden Befehle mit den Rechten "Superuser" oder "Root" aus. Auf diese Weise können Sie fast alles über die Befehlszeile ausführen. Das heißt, TUN SIE DAS NICHT! Wenn Sie ein Skript auf Ihrem Computer ausführen und es nicht benötigen, um auf die Kernkomponenten Ihres Betriebssystems zuzugreifen (Ich vermute, Sie sind es nicht, da Sie das Skript auf etwas in Ihrem Home-Verzeichnis (~ /) aufrufen), dann sollte es von Ihrem Home-Verzeichnis ausgeführt werden, dh:

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

Verschiebe es in ~/oder ein Unterverzeichnis und führe es von dort aus aus. Sie sollten dort niemals Berechtigungsprobleme haben, und es besteht kein Risiko, dass darauf zugegriffen oder etwas geändert wird, das für Ihr Betriebssystem wichtig ist.

Wenn Sie immer noch Probleme haben, können Sie die Berechtigungen für die Datei überprüfen, indem Sie ls -l Im selben Verzeichnis wie das Ruby) -Skript ausführen.

$ 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

Sie werden feststellen, dass in der Datei readme.txt links -rw-r--r-- Steht. Hier werden die Berechtigungen für diese Datei angezeigt. Die 9 Zeichen von rechts können in Gruppen von 3 Zeichen von 'rwx' aufgeteilt werden (Lesen, Schreiben, Ausführen). Wenn ich dieser Datei Ausführungsrechte hinzufügen möchte, würde ich chmod 755 readme.txt Ausführen und dieser Berechtigungsteil würde zu rwxr-xr-x. Ich kann diese Datei jetzt ausführen, wenn ich ./readme.txt Ausführen möchte (./ weist die Bash an, im aktuellen Verzeichnis nach dem gewünschten Befehl zu suchen, anstatt die Variable $ PATH zu durchsuchen).

schluchc spielt darauf an, in der Manpage nach chmod zu suchen. Führen Sie dazu man chmod aus. Dies ist der beste Weg, um Dokumentation zu einem bestimmten Befehl zu erhalten, man <command>

56
sean_m

Haben Sie sich das Recht gegeben, das Skript auszuführen?

Der folgende Befehl als Superuser erledigt dies für Sie:

Sudo chmod 755 'filename'

Für Details solltest du die Manpage von chmod lesen.

169
schluchc

Sie sollten das Skript als "Superuser" ausführen. Fügen Sie einfach "Sudo" vor dem Befehl ein und geben Sie Ihr Kennwort ein, wenn Sie dazu aufgefordert werden.

Also versuche:

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

Wenn dies nicht funktioniert, passen Sie die Berechtigungen an:

Sudo chmod 755 /dvtcolorconvert.rb
Sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme
3
Jens

In meinem Fall hatte ich im Shebang einen dummen Tippfehler gemacht.

Für den Fall, dass jemand anderes mit fetten Fingern über diese Frage stolpert:

Whoops: #!/usr/local/bin Ruby

Ich wollte schreiben: #!/usr/bin/env Ruby

Der vage Fehler, den ZSH macht, hat mich auf den falschen Weg gebracht:

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

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

2
jbbuckley

Zum Ausführen im Administratormodus auf einem Mac

Sudo su
1
Vaishnavi Bala

Überprüfen Sie die Berechtigungen für Ihr Ruby Skript (möglicherweise ohne Ausführungsberechtigung), Ihre Themendatei und Ihr Verzeichnis (falls das Thema nicht gelesen werden kann oder versucht wird, andere Themen darin zu erstellen). nd das Verzeichnis, in dem Sie sich befinden, wenn Sie das Skript ausführen (falls es temporäre Dateien im aktuellen Verzeichnis erstellt, anstatt /tmp).

Jeder von ihnen könnte dir Kummer bereiten.

1
paxdiablo