useradd -p

D

Daether

Grünschnabel
Hi,
ich mache ein Script in PHP wo ich aber einen system() befehl ausführe. Es ist daher eher eine Unix bezogene Frage, hoffe ich bin hier richtig ;).
Ich habe folgenden Befehl ausgeführt:

useradd -d /var/www/".$domainname."/ -s /bin/false -c ".$domainname." -m -p".$passwort." ".$benutzername)

Das ergab folgendes in der /etc/shadow:
test:test:13378:0:99999:7:::

und das in der /etc/passwd:
test:x:1004:100:-m:/var/www//:/bin/false

Das Einloggen war nicht möglich. Bei allen anderen Benutzern steht in der /etc/shadow ein ! oder ein * anstelle des Passwortes. Dann habe ich mit crypt($passwort) das Passwort verschlüsselt beim Eintragen, nur mit dem Ergebnis, dass ich jetzt folgende Einträge habe:
test:x:1004:100:-m:/var/www//:/bin/false
test:jE8AMLM/.M47/:13377:0:99999:7:::

Kann mir einer sagen wie ich das Passwort da richtig eingeben kann, oder wie ich per PHP-Script, passwd ausführen und das Passwort eintragen kann?
MfG Daether
 
Guten Morgen,

mit -s /bin/false wird kein Einloggen möglich sein. Das müßtest Du nach
/bin/bash
ändern. Vermutlich ignoriert useradd auch deshalb Dein Paßwort.
Sorry, aber schau Dir mal das Manual von useradd (-s, -p) an.

hmhweb
 
Sind die Passwörter in /etc/shadow nicht ein md5-hash?

Sprich:
PHP:
$passwort = md5($passwort);


Ausserdem ist
Code:
/bin/false
falsch
Damit ist kein Login möglich...


MFG Manuel

Edit:
Habe gerade nochmal gelesen, Wie der Hash oder die Verschlüsselung ist kann dir ja erstmal egal sein, da du das passwort eh an useradd übergibst.
 
Zuletzt bearbeitet:
Hi,

grundsätzlich liegst du da halbrichtig. Ich habe keine Shell, d. h. aber nicht, dass ich mich nicht einloggen kann :)) .
Ich werde halt nur sofort nachdem Benutzer und Passwort bestätigt sind rausgeworfen. Das Problem ist ja, dass ich immer die Meldung bekommen, das mein Passwort falsch ist.


Selbst wenn ich nur useradd -p test test mache, kann ich mich nicht einloggen.

/edit: Es geht darum, dass diese User über Proftpd zugreifen sollen und keine Shell haben dürfen ;)
/edit2: Das Passwort vorher per md5 zu verschlüsseln hat leider auch nicht geholfen.
 
Zuletzt bearbeitet:
wieso übergibst du das nicht in 2 schritten? immer diese ewig langen dinger..


#!/bin/bash
read -p "Domainname: " domainname
read -p "Passwort: " passwort
useradd -m -d /var/www/$domainname -s /bin/false $domainname
echo $domainname:$passwort |chpasswd
echo "User $domainname wurde erfolgreich mit dem Passwort $passwort angelegt."
---

einfach mal von der hand getippt...
 
Um doch die '-p' option fuer useradd zu nutzen, koenntest Du folgendes machen:
Code:
useradd -m -p `mkpasswd testest d3`   test
wobei ich nicht alle Optionen von Dir wieder aufgefuehrt habe. Danach konnte ich mich zumindest vom user tg mittels 'su - test' und dem Passwort 'testest' einloggen.
 
OffTopic:
Aber darf nicht nur root adduser ausführen?
Bin mir jetzt nicht sicher, kann es momentan auch nicht ausprobieren. Wenn ja würde das bedeuten das dein $httpd als root läuft. Nicht gut, garnicht gut. Wenn der sowieso als root läuft kannst auch gleich in die shadow selber schreiben....



MFG manuel
 
Zuletzt bearbeitet:
thanks @rikola .
Mit deinem Code klappt das jetzt einwandfrei.
 

Ähnliche Themen

SHA512 /etc/shadow Hash mittels openSSL

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Kerberos SSO

Samba 4.1.11 Domänen anbindung funktioniert nicht !!!

ganze Netzwerkumgebung schagartig unsichtbar - 0S 13.1

Zurück
Oben