Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP][LINUX]php, dodawanie użytkownika
Forum PHP.pl > Forum > Przedszkole
ert
Mam problem, jestem nowy w PHP.
Mam skrypt do automatycznego dodawania użytkownika via www.

  1. function add_user($user, $pass) {
  2. $pass = crypt($pass);
  3. $this->ssh_exec("mkdir /home/$user");
  4. $this->ssh_exec("useradd -d '/home/$user' -g users -p '$pass' $user");
  5. $this->ssh_exec("usermod -s /bin/bash $user");


Wszystko fajnie i pięknie, użytkownik się dodaje, ale nie mogę się zalogować - mam komunikat o błędnym haśle.

Pomożecie?
mar1aczi
Czy aby pojedyncze apostrofy nie są też brane jako treść hasła?
ert
Cytat(mar1aczi @ 14.03.2013, 11:30:34 ) *
Czy aby pojedyncze apostrofy nie są też brane jako treść hasła?


Usunąłem apostrofy i nic to nie dało. sad.gif
mar1aczi
Cytat(ert @ 14.03.2013, 09:49:09 ) *
  1. function add_user($user, $pass) {
  2. $pass = crypt($pass);
  3. ...

Nie zwróciłem wcześniej na powyższe uwagi. Samo polecenia useradd zakoduje hasło.
ert
Cytat(mar1aczi @ 14.03.2013, 12:45:47 ) *
Nie zwróciłem wcześniej na powyższe uwagi. Samo polecenia useradd zakoduje hasło.


Jestem totalnym lamusem, jeżeli chodzi o php.
Mógłbyś mi wkleić cały poprawny kod?

Z góry dziękuję.
mstraczkowski
Koledze chodzi chyba o to, że Linux sam zakoduje hasło, więc zbędne jest puszczenie hasła przez funkcję crypt
Bo w takim przypadku, podając hasło do logowania musiałbyś podawać wynik crypt("twoje_haslo");, wtedy byś się zalogował
ert
Problem rozwiązany. Miało być:
  1. crypt($pass, "$5$".mt_rand())
redeemer
Cytat
Nie zwróciłem wcześniej na powyższe uwagi. Samo polecenia useradd zakoduje hasło.

Cytat
Koledze chodzi chyba o to, że Linux sam zakoduje hasło, więc zbędne jest puszczenie hasła przez funkcję crypt

Skąd ten wniosek? Manual mówi co innego:
...
-p, --password PASSWORD The encrypted password, as returned by crypt(3).
...

Problem wystąpił ponieważ funkcja php crypt() zwracała hash za pomocą innego algorytmu niż używany w Twoim systemie. Dlatego "magiczne" $5$ wymusza na funkcji crypt() zastosowanie SHA-256, którego używa Twój system. (http://php.net/manual/en/function.crypt.php)
mstraczkowski
@up Zgadzam się, mój błąd
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.