Dateiberechtigungen im Terminal

Da ich noch einer der verbliebenen Entwickler bin, der mit Batch-Dateien auf DOS-Rechnern groß geworden ist, habe ich immer wieder Schwierigkeiten mit Dateiberechtigungen und Shells. Beim Skripten auf DOS-Rechnern waren die Rechte nicht so das Thema. Adminrechte hatte der, der vorm Rechner saß (!?). Ich hoffe echt, das mal Microsoft dieses Monster einstellt und PowerShell das Ruder überläßt.

Aber ich sitze hier an meinem MacBook und das Terminal bietet mir Standardmäßig die Unix-Shell zsh an. Wer überhaupt nicht mit dem Terminal und Shell klarkommt, der macht mit dem Terminal Benutzerhandbuch für macOS einen guten Start.

Zugriff verweigert (permission denied)

Der Klassiker. Die Sicherheit setzt hier einfache Maßstäbe. Eine ausführbare Datei muß erstmal die nötigen Rechte haben, um überhaupt ausgeführt werden zu dürfen. Gibts die nicht, erscheint eine Fehlermeldung:

/Users/me/dev/test.zsh 
zsh: permission denied: /Users/me/dev/test.zsh

Wir wissen nicht was los ist, also erstmal Rechte checken:

ls -l /Users/me/dev/test.zsh 
-rw-r--r-- me team ...
Erklärung der Dateiberechtigungen
-rw-r--r-- me team ...
{Dateirechte} {Eigentümer} {Arbeitsgruppe} ...

x---------    1 Dateityp
-xxx------ 2..4 Eigentümerrechte
----xxx--- 5..7 Gruppenrechte
-------xxx 8..10 Rechte alle Anderen

    r = read (Lesen), w=write (Schreiben), x=execute (Ausführen)

    Allechmod +x [Dateiname]-rwxr-xr-x
    Benutzerchmod u+x [Dateiname]-rwxr--r--
    Gruppechmod g+x [Dateiname]-rw-r-xr--
    Alle anderenchmod o+x [Dateiname]-rw-r--r-x

    Mit -x werden die Rechte wieder entfernt.

    Es sind keine Rechte zum Ausführen vergeben, also Rechte nachtragen:

    chmod +x /Users/me/dev/test.zsh

    Anschließend Rechte kontrollieren:

    ls -l /Users/me/dev/test.zsh   
    -rwxr-xr-x ...

    Abschließend erneut ausführen:

    /Users/me/dev/test.zsh
    ...
    Scroll to top