Frage von flo34771, 42

Shell Script Coden für anfänger?

ich würd gerne nen user anlegen und den Command kann ich in php nicht absetzen zumindest nicht als sudo kommen nur fehler bei raus

  1. Möglichkeit

Shell script

z.b

Termian: ./srcipt.sh username Passwort homedir

und dann soll das script

adduser ... usw

eingeben

aber ich hab nicht viel Ahnung von sehll und Kommandosubstitution

das .sh script lässt sich dann normal ja über php wieder starten nur den System Command kann ich nicht absetzen :) Hilfe? :)

Expertenantwort
von guenterhalt, Community-Experte für Linux, 25

als Anfänger fängt man nicht mit php oder python an. Die Linux-Standard-Shell bash bietet so viele Möglichkeiten (und auch Hürden), um viele Dinge damit zu machen.

Im einfachsten Falle schreibt man Kommandozeilenbefehle in eine Datei und lasst die ablaufen ( bei Windows heißt das "öffnen").

Danach kann man sich mit Übergabe-Parametern an andere Script-Dateien beschäftigen. Im nächsten Schritt kann man den Rückgabewert eines Programms/Scripts in "lesbaren" Text umwandeln, später auch auswerten und mit den Ergebnissen andere (unterschiedliche) Programme starten.

Ohne ein geeignetes Buch wird das aber kompliziert.

Linux bietet zwar umfangreiche man-Pages, man muss aber wissen, was man wissen will.

Antwort
von Linuxhase, 23

Hallo

ich würd gerne nen user anlegen und den Command kann ich in php nicht absetzen

Was hat php denn mit dem anlegen von Benutzern zu tun?

adduser

  • Das Programm dafür ist useradd
  • adduser ist lediglich ein Script (afaik Perl)
useradd --help

oder auch

man useradd

sind die Hilfen die Du verwenden solltest.

Linuxhase

Antwort
von acdxx, 25
#!/usr/bin/php

<?php
  $username = "foo";
  $password = crypt("bar", "salt");

  exec("sudo useradd -m -p " . $password . " " . $username);
?>
Kommentar von flo34771 ,

Funktioniert nicht :/

Kommentar von acdxx ,

Funktioniert im Terminal; über Webserver geht's wegen dem nötigen sudo Passwort nicht ohne Weiteres.

Kommentar von flo34771 ,

Hab ich auch bemerkt Danke :)

Das Script funktioniert im Terminal :) hast du recht aber

Wie gebe ich www-data / sudo rechte um das Script mit php Variablen zu füllen?

Ich habe das gleiche problem mit dem command

passthru("/etc/init.d/apache2 reload");

Im Terminal als Root user kommen keine Fehler :)

aber www-data hat keine rechte um Apache zu reloaden :) ^^

ist klar aber ich versteh nicht in welcher config ich das umstellen kann

Kommentar von flo34771 ,

ok :) ehm PHP kann das Script jz als Root ausführen.. 

leider nur in einer .sh datei ich kann die sh aber fia index.php starten

kann ich via post einen username in die sh einfügen das dann der user erstellt wird?

Keine passende Antwort gefunden?

Fragen Sie die Community