Wie erstelle ich einen Benutzer in Linux mit Python? Ich meine, ich kenne das Subprozess-Modul und dachte darüber nach, 'adduser' aufzurufen und alle Parameter gleichzeitig zu übergeben, aber der Befehl 'adduser' stellt einige Fragen wie Passwort, vollständiger Name, Telefon und so weiter. Wie würde ich diese Fragen im Subprozess beantworten? Ich habe Modul namens Pexpect in dieser Frage gesehen: Can I use Python as a Bash replacement?. Gibt es ein anderes Standardmodul?Erstellen eines Benutzers in Linux mit Python
Antwort
Verwenden Sie useradd
, es stellt keine Fragen, aber akzeptiert viele Befehlszeilenoptionen.
Sie könnten einfach die eingebauten Binaries verwenden, also rufen Sie einfach useradd oder etwas durch das Unterprozessmodul auf. Allerdings weiß ich nicht, ob es andere Module gibt, die sich in Linux einklinken, um solche Funktionalität zu bieten.
auf Ubuntu, könnten Sie die python-libuser Paket verwenden
import os
import crypt
password ="[email protected]"
encPass = crypt.crypt(password,"22")
os.system("useradd -p "+encPass+" johnsmith")
wofür ist die Nummer 22? Ist das noch der richtige Weg, 2017 zu verschlüsseln? – answerSeeker
22 ist ein Salz. Sie können zufällige Werte verwenden. Wenn Sie zusätzliche Sicherheit wollen, können Sie sha-256 oder sha-512 verwenden. – mcolak
def createUser(name,username,password):
encPass = crypt.crypt(password,"22")
return os.system("useradd -p "+encPass+ " -s "+ "/bin/bash "+ "-d "+ "/home/" + username+ " -m "+ " -c \""+ name+"\" " + username)
Wie lautet die Nummer 22? Außerdem wäre subprocess besser als os.system? – answerSeeker
@answerSucher es ist Salz. salt ist eine 2-stellige Zeichenfolge , die zur Auswahl einer der 4096 Varianten von DES verwendet wird. (von pydoc) – yanpas
Entschuldigung für den Necrobump, aber Crypt kann ein Salz für Sie generieren, keine Notwendigkeit zu spezifizieren. Salz = crypt.mksalt (crypt.METHOD_SHA512) salthash = crypt.crypt (Passwort, Salz) siehe [hier] (https://docs.python.org/3/library/crypt.html#crypt. mksalt) für weitere Informationen. –
- 1. Erstellen eines neuen WordPress-Benutzers mit Webservice
- 2. MySQL: Erstellen eines Benutzers mit Root-Rechten
- 3. Erstellen eines MongoDB-Benutzers über die Befehlszeile
- 4. Fehlender Vorlagenfehler beim Erstellen eines neuen Benutzers
- 5. Erstellen eines Fenstermanagers für Linux
- 6. Erstellen eines Admin-Benutzers mit datafixtures und fosuserbundle
- 7. TYPO3: Erstellen eines FE-Benutzers in der Controller-Aktion
- 8. Erstellen eines neuen MySQL-Benutzers in Amazon RDS-Umgebung
- 9. Erstellen eines Pegboard in Python
- 10. Erstellen eines Bandbreitenpools in Python
- 11. Erstellen eines Admin-Benutzers in der Produktion auf Spree
- 12. Erstellen eines Prozesses in Linux mit einem anderen Mount-Namespace
- 13. Portable Python erstellen (lokale Installation) für Linux
- 14. Erstellen Sie eine Benutzergruppe in Linux mit Python
- 15. Sichere Python-Umgebung in Linux
- 16. Blockieren eines Benutzers in Asp.NET
- 17. Wie interagiert Python mit Linux?
- 18. Render full_name eines Benutzers
- 19. Überwachungsabfragen eines MySQL-Benutzers
- 20. Linux einen Screenshot eines bestimmten Arbeitsbereichs erstellen
- 21. Erstellen eines Installers für Linux-Anwendung
- 22. Manuelles Registrieren eines Benutzers in Laravel
- 23. Linux/X11 Eingabebibliothek ohne Erstellen eines Fensters
- 24. Erstellen eines Compilers oder Interpreters mit Python
- 25. Firebase setDisplayName des Benutzers beim Erstellen des Benutzers Android
- 26. Erstellen eines Windows-Bildschirmschoners mit Python?
- 27. Erhalte eine ungültige Anfrage 400 beim Erstellen eines Benutzers (Firebase)
- 28. Imitieren eines Windows-Benutzers
- 29. Erstellen eines halbtransparenten PNG mit ImageMagick auf Centos Linux
- 30. Verwenden von% für den Host beim Erstellen eines MySQL-Benutzers
Ist das ein ubuntu-only-Paket? Muss ich dieses Paket manuell installieren, wenn ich es auf anderen Distributionen ausführen muss? – Salsa
Sie sind wahrscheinlich besser dran mit 'useradd' für die Kompatibilität mit anderen Distributionen, aber beachten Sie, dass nicht garantiert ist, dass' useraddd 'auf allen Distributionen verfügbar ist. Puppy Linux Ich glaube, dass zum Beispiel standardmäßig useradd nicht dabei ist. – unutbu