Sicherheitstools Phyton
Zur Navigation springen
Zur Suche springen
Über den Übergang
- Kali Linux ist vollständig auf Python 3 umgestiegen.
- Das bedeutet, dass jedes von Kali gepackte Tool, das Python 2 verwendet hat, entweder gelöscht oder für die Verwendung von Python 3 konvertiert wurde.
- Jedes Tool, das auf Python 3 konvertiert wurde, enthält nur Skripte mit /usr/bin/python3 als shebang.
- In Bezug auf die Pakete, die direkt von Debian kommen, haben sie bei den meisten Paketen dasselbe getan,
- Es gibt aber einige Ausnahmen, bei denen Pakete weiterhin auf Python 2 angewiesen sein dürfen.
- Diese Pakete wurden jedoch aktualisiert, sodass alle ihre Skripte /usr/ verwenden.
- bin/python2 als ihr Shebang und damit sie vom python2-Binärpaket (anstelle des früheren Python) abhängen.
- Dank dieser Änderungen muss Debian nicht mehr /usr/bin/python bereitstellen, und die jüngsten Upgrades werden diesen Symlink effektiv entfernen.
- Wenn Sie ein Python-Skript aus dem Internet herunterladen, wird es leider wahrscheinlich /usr/bin/python als Shebang haben.
- Wenn Sie versuchen, es auszuführen, ohne die Shebang-Linie zu reparieren, erhalten Sie am Ende einen Fehler wie diesen:
- zsh: /home/kali/test.py: bad Interpreter: /usr/bin/python: keine solche Datei oder Verzeichnis
- In Debian können Sie den symbolischen Link /usr/bin/python wiederherstellen, indem Sie Folgendes installieren:
- python-is-python2 wenn Sie möchten, dass es auf python2 zeigt
- python-is-python3 wenn Sie möchten, dass es auf python3 zeigt
Abwärtskompatibilität in Kali beibehalten
- Angesichts der großen Anzahl von Benutzern, die nicht wissen, wie man den obigen Fehler vermeidet, haben wir entschieden, dass Kali weiterhin standardmäßig Python 2 ausliefert
- (solange Debian es noch bereitstellt) und dass /usr/bin/python darauf verweisen würde .
- Wir behalten auch einige gängige externe Module (wie Anfragen) bei, damit zufällige Exploit-Skripte eine angemessene Chance haben, erfolgreich ausgeführt zu werden.
- Pip für Python2 (alias python-pip) ist jedoch weg, /usr/bin/pip ist dasselbe wie /usr/bin/pip3 und es werden Module für Python 3 installiert.
- Diese Kompatibilität wurde implementiert, indem kali-linux-headless python2, python-is-python2 und offsec-awae-python2 empfiehlt.
- Sodass sie standardmäßig installiert werden, während sie von Benutzern entfernt werden können, die sie loswerden möchten.
- Um Benutzer auf diese Situation aufmerksam zu machen, zeigen wir beim Anmelden eine Aufforderungsmeldung an:
┏━(Message from Kali developers) ┃ ┃ We have kept /usr/bin/python pointing to Python 2 for backwards ┃ compatibility. Learn how to change this and avoid this message: ┃ ⇒ https://www.kali.org/docs/general-use/python3-transition/ ┃ ┗━(Run “touch ~/.hushlogin” to hide this message)
- Die Hoffnung ist, dass sie diesen Artikel lesen und wissen, wie sie mit den verschiedenen Problemen umgehen, denen sie begegnen werden.
Häufig gestellte Fragen
- Ich habe ein Python-Skript heruntergeladen, was soll ich tun?
- Sie müssen seine Shebang-Linie inspizieren.
- Die Shebang-Zeile ist die erste Zeile eines Skripts und beginnt mit #! gefolgt vom Pfad des Interpreters, der zum Ausführen des Skripts verwendet wird.
- Wenn der Interpreter /usr/bin/python ist, sollten Sie die Dokumentation lesen, um zu sehen, ob das Skript mit Python 3 ausgeführt werden kann.
- Wenn ja, sollten Sie die Shebang-Zeile so aktualisieren, dass sie auf /usr/bin/python3 zeigt.
- Andernfalls sollten Sie es so aktualisieren, dass es auf /usr/bin/python2 zeigt.