Benutzererstellung automatisieren

Benutzererstellung automatisieren

Ich habe eine Site für meine Studenten und sie läuft unter Ubuntu 14.04. Wenn sich meine Studenten auf meiner Site registrieren, speichere ich Benutzerinformationen in einer MySQL-Datenbank.

Ich möchte meinen Schülern bei der Registrierung auf meiner Site eine Website auf meiner Ubuntu-Installation bereitstellen und ich möchte, dass dies automatisiert wird. Meine Frage ist: Kann ich die Daten irgendwie direkt aus der MySQL-Datenbank verwenden, um ihnen eine Subdomäne (username.mydoamin.com) auf meinem Ubuntu bereitzustellen, oder kann ich Shell-Befehle auf Ubuntu von PHP aus ausführen und automatisieren, was ich jetzt manuell mache?

Antwort1

kann ich Shell-Befehle auf Ubuntu von PHP aus ausführen und automatisieren, was ich jetzt manuell mache?

Sie können Shell-Befehle von innen ausführen, PHPindem Sie denshell_exec()Funktion oder mit dem ` `(Backtick)-Operator: Wenn Sie PHP< 5.4.0 verwenden, deaktivieren Sie zunächstSicherheitsmodus, dann PHPkönnen Sie in Ihrem Skript eine dieser Syntaxen verwenden:

  • $return = shell_exec('<shell_command>');
  • $return = `<shell_command>`;

Sofern Sie nicht die Rückgabewerte einzelner Befehle erfassen möchten, besteht die einfachste Möglichkeit, Ihre Anforderungen zu erfüllen, darin, alles, was Sie manuell in der Shell tun, in ein eigenständiges (oder was auch immer) Skript zu komprimieren, das einmal aufgerufen wird, indem Sie eine dieser Methoden verwenden. Die Syntax für ein Skript wäre bashbeispielsweise :bash

  • $return = shell_exec('bash script.sh');
  • $return = `bash script.sh`;

So übergeben Sie Parameter an das Skript (z. B. den Wert einer $usernameVariablen):

  • $return = shell_exec("bash script.sh '$username'");
  • $return = `bash script.sh '$username'`;

So rufen Sie die übergebenen Parameter innerhalb des bashSkripts ab (z. B. den Wert einer $usernameVariablen, die mit der obigen Methode übergeben wurde):

#!/bin/bash

# ...
username=$1
# ...

$1Oder geben Sie bei Bedarf einfach einen Verweis an , zB:

#!/bin/bash

# ...
echo "$1"
# ...

Antwort2

Als Folgefrage zu meiner eigenen Frage werde ich meine Erfahrungen erläutern. Ich habe die Shell-Ausführung von PHP aus zum Laufen gebracht, hatte aber große Sicherheitsprobleme mit der Lösung. Das war ein GROßER Fehler meinerseits, dass ich das am Anfang nicht erkannt habe.

Um Sicherheitsrisiken auszuschließen, habe ich ein Bash-Skript erstellt, das in der Benutzertabelle nach aktivierten Benutzern sucht. Wenn der Benutzer aktiv UND kein Linux-Benutzer war, sollte der Benutzer auf meinem Linux erstellt werden, ein Datenbankbenutzer wird erstellt, eine Subdomäne wird erstellt und SSH wird für den Benutzer gesperrt. Ich habe einen Cron-Job eingerichtet, der alle 60 Minuten ausgeführt wird, und bei der Benutzererstellung wird dem Benutzer eine E-Mail mit Registrierungsinformationen gesendet.

Dadurch werden viele (nicht alle) Sicherheitsrisiken eliminiert.

Bjarke

verwandte Informationen