Üblicherweise spricht man bei der Betrachtung von Bash und Powershell nicht über Philosophie und IT. Aber wenn ich eine Sache in den letzten 20 Jahren als Systemadministrator gelernt habe, ist es, dass jeder – sei er Empiriker, Nihilist oder junger Hegelianer -, der es in diesem Job ernst meint, seinen Tag nicht mit Anklicken von Schaltflächen verbringt, sondern sein Netzwerk über die Kommandozeile steuert.
Ich bringe das zur Sprache, weil jeder zunächst einmal schreibt, dass PowerShell und Unix-Shells einer „anderen Philosophie“ folgen. Letztlich läuft es darauf hinaus, dass PowerShell strukturierte Daten hin und her schiebt. Unix-Shells schieben Textbrocken herum.
Ein Beispiel: Liste die Daten im aktuellen Verzeichnis auf:
Mit PowerShell:
PS C:temp\> ls
/temp/ls
Was Sie da oben sehen, sieht vielleicht einfach wie eine Liste von Dateien aus, aber beide sind eine Übung in der Ausübung von Verantwortung. Wer ist dafür veranwortlich, wie die Ausgabe strukturiert wird? Die Philosophie von PowerShell ist: „Das machen wir für Dich!“ PowerShell gibt die Dateien als eine Serie von Objekten aus, die Dateiobjekte sind – die Objekte haben Eigenschaften wie Größe, Erstellungsdatum usw.
Bash folgt der Philosophie, dass Sie – der Systemadministrator – allmächtig sind und selbst entscheiden können, was Sie mit diesem Zeichenfolgensatz (der in diesem Fall eine textförmige Darstellung von Dateinamen ist) anfangen möchten.
Beide Ansätze stehen im Gegensatz zu der dritten (und traurigerweise immer noch viel zu weit verbreiteten) Philosophie, die lautet: „Ich werden nichts von beiden lernen und stattdessen einfach den Ordner mit einem Doppelklick öffnen, um zu sehen, was drin ist.“
Shell-Skripte zu schreiben ist so, als würde man etwas aus Lego bauen (oder dem architektonischen System Ihrer Wahl mit ineinander greifenden Steinen). Ein Steinchen ist nicht besonders viel, aber wenn Sie genug davon zusammenfügen, haben Sie plötzlich eine Miniatur des Mount Rushmore im Keller.
Deshalb ist der anscheinend so triviale Punkt, ob Ihnen Objekte oder eine Textmenge ausgegeben wird, so wichtig. Nicht, weil es Sie wirklich kümmert, was Sie als Endergebnis bekommen, sondern weil alles, was man beim Skripten tut, auf den Daten aufbaut, die ausgegeben werden. Es ist weniger ein „Skript“, sondern eher ein Datentransformationskanal, der aus einer Reihe kleinerer Skripte besteht, die Daten herumreichen.
Bash-Befehl | PowerShell-Befehl | Anmerkungen |
---|---|---|
= != | -eq -ne -ceq -cne | Vergleicht kurze Textschnipsel wie Datei- oder Benutzernamen miteinander. |
grep | select-string | Findet zu einem Muster passende Zeilen. |
sed | -replace | Ersetzt eine Zeichenfolge. |
echo | Write-Host | Gibt den Wert auf dem Bildschirm aus (praktisch für die Fehlerbeseitigung) |
var=3 | $var = 3 | Erzeugt eine Variable für $var. |
Quelle: http://cecs.wright.edu/~pmateti/Courses/233/Top/index.html
Wie soll ich vorgehen?
Im Folgenden finden Sie drei Möglichkeiten, wie Sie das Datenrisiko in Ihrem Unternehmen verringern können:
Vereinbaren Sie eine Demo mit uns, um Varonis in Aktion zu erleben. Wir passen die Session an die Datensicherheitsanforderungen Ihres Unternehmens an und beantworten alle Fragen.
Sehen Sie sich ein Beispiel unserer Datenrisikobewertung an und erfahren Sie, welche Risiken in Ihrer Umgebung lauern könnten. Varonis DRA ist völlig kostenlos und bietet einen klaren Weg zur automatischen Sanierung.
Folgen Sie uns auf LinkedIn, YouTubeund X (Twitter), um kurze Einblicke in alle Themen der Datensicherheit zu erhalten, einschließlich Data Security Posture Management (DSPM), Bedrohungserkennung, KI-Sicherheit und mehr.