Anzeige:
Ergebnis 1 bis 7 von 7

Thema: User anlegen mit php über sudo

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171

    User anlegen mit php über sudo

    Hi @all,

    ich habe hier einen kleinen code zum anlegen eines users mit php:

    Code:
    <?
    if(isset($send)){
    	
    	if(empty($err)){		
                      $pwd=crypt($pwd1);
    		system("sudo /srv/user.sh $user $pwd $pwd1",$rc);
    		if($rc==0){							
    	} else {
    		$err="Bitte wählen Sie einen anderen Usernamen<br>";
    			unset($user);
    			unset($send);
    		}
    	} else  {
    		unset($send);
    	}
    } else  {
    	# init vars
    	$user=$pwd1=$pwd2="";
    }
    ?>
    
    <?if(!isset($send)):?>
    
    	<?if(isset($err)) echo "$err<p>"?>
    
    <form action="<?=$PHP_SELF?>" method="GET" enctype="multipart/form-data" onSubmit="return chkForm()">
    		<input type="hidden" name="send" value="1">
    		<input type="hidden" name="uid" value="<?=md5($uid)?>">
    
                    Username:<br><input type="text" name="user" value="<?=$user?>"><br>
                    Passwort:<br><input type="password" name="pwd1" value="<?=$pwd1?>"><br>
    		Passwort wiederholung:<br><input type="password" name="pwd2" value="<?=$pwd2?>"><br>
    
    		<input type="submit" value="anlegen"><br><br>
    	</form>
    <?else:?>
    fertig
    in der .sh datei steht einfach der befehl:
    /usr/sbin/useradd -d verzeichnis $PASSWORD $USER

    in der /etc/sudoers steht auch:
    wwwrun linux=NOPASSWD: /srv/user.sh


    Wenn ich die shell datei direkt über die konsole (als user wwwrun) aufrufe funktioniert diese auch! (also er legt einen user an)

    Wenn ich nun aber die php datei aufrufe macht er nichts! Er legt den User nicht an!

    Nur wieso?
    Apache nutzt (laut der httpd.conf) auch den user wwwrun.
    Imi Skript selber sind auch keine fehler.
    Auch wenn ich den befehl exec anstatt sytsem nehme funktioniert es nicht!

    Ich hatte das Skript auch schon einmal am laufen!
    Den einzigsten unterschied den ich jetzt seh ist nur, das ich früher (wo es funktioniert hatte) php 4.3.1 hatte und nu hab ich nur php 4.2.2. Funktioniert irgendein Befehl im Skript (siehe oben) bei 4.3.1 und bei 4.2.2 nicht ? Aber dann müßte ich doch eine Fehlermeldung o.ä. kriegen.

    Würd mich freun wenn ihr mir da helfen könntet

    MfG
    Stormsam

  2. #2
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Schau mal in die php.ini - könnte mit dem Safemode zusammenhängen...


  3. #3
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    Hi!

    danke für den tipp !
    Mein Safe Mode Teil in der php.ini sieht so aus:
    Code:
    ; Safe Mode
    safe_mode = Off
    
    safe_mode_gid = Off
    
    safe_mode_include_dir =								
    safe_mode_exec_dir =
    
    ;open_basedir =
    
    safe_mode_allowed_env_vars = PHP_
    
    safe_mode_protected_env_vars = LD_LIBRARY_PATH
    
    disable_functions =
    Also wenn ich das mit der php.ini vom dem anderen server mit php 4.3.1 vergleiche ist alles genau gleich!
    Ich habs zum testen einfach mal auf on gesetzt (und apache neu gestartet), hat aber nicht viel gebracht, bzw. hat gar nichts gebracht

    Was könnte man noch ändern?

    MfG
    Stormsam

  4. #4
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Ich weiß nicht, wie oft ich es schon gesagt habe.
    Mit PHP kann man keine User anlegen.
    Diese Möglichkeit wurde PHP vor ca. 5 Jahren aus Sicherheitsgründen genommen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    doch das geht!
    Ich hatte es ja auf nem anderen rechner hinbekommen, nur da lief php 4.3.1.
    Nun hab ich php 4.2.2.

    Es ist ja eigentlich nicht direkt php sondern sudo und eine shell datei.
    -> system("sudo /srv/user.sh $user $pwd $pwd1",$rc);

    Es muss irgendeine Einstellung in php sein, was anderes fällt mir nicht ein, den das Shell script ansich funktioniert (wenn ich es direkt als user wwwrun in der konsole aufrufe!)

    hat da vielleicht jemand noch eine idee woran das liegen könnte?

  6. #6
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    Hi @all,

    nun habe ich mit hilfe von Gaert es hinbekommen das der befehl system funktioniert. Allerdings mit einem anderen beispiel.
    Es war einfach ein Skript das den Pink ausführen sollte und diesen anzeigen sollte. Das habe ich nun hinbekommen.

    Nun glaub ich nicht mehr das es an php liegt ... hat da vielleicht jemand noch eine idee?

    mfG
    Stormsam

  7. #7
    Registrierter Benutzer
    Registriert seit
    26.12.2001
    Beiträge
    228
    leite doch mal die Ausgabe des Scripts / der Programme in eine Datei um.
    pornstars-online.de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •