Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt zmiany hasła w roundcube
kolaborek
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 12.10.2010

Ostrzeżenie: (0%)
-----


Witajcie.

Od razu przepraszam, jeżeli nie można umieszczać tutaj tego typu wątków i ewentualnie proszę o zadziałanie moderatora.

Mam zainstalowany serwer pocztowy na macierzy Synology. Doinstalowałem tam Roundcube'a aby mieć panel www. W roundcubie chciałem włączyć plugin do zmiany haseł przez użytkowników, ale nie działa. Od kilkunastu dni się z tym męczę. Przeglądnąłem fora dotyczące mojej macierzy, roundcubea i ogólnie googla. Nie udało się. Z uwagi na to, że plugin jest w PHP pomyślałem, że najlepiej będzie uderzyć tutaj. A więc.

Jest to plugin, który poprzez wykonanie polecenia systemowego ma zmieniać użytkownikom hasła. W konfiguracji ustawiającej plugin mam polecenie, które ma być wykonywane na macierzy:
  1. // chpasswd Driver options
  2. // ---------------------
  3. // Command to use
  4. $rcmail_config['password_chpasswd_cmd'] = 'sudo /usr/syno/sbin/synouser --setpw';


Natomiast driver obsługujący to polecenie jest poniżej:
  1. <?php
  2.  
  3. /**
  4.  * chpasswd Driver
  5.  *
  6.  * Driver that adds functionality to change the systems user password via
  7.  * the 'chpasswd' command.
  8.  *
  9.  * For installation instructions please read the README file.
  10.  *
  11.  * @version 2.0
  12.  * @author Alex Cartwright <acartwright@mutinydesign.co.uk>
  13.  */
  14.  
  15. class rcube_chpasswd_password
  16. {
  17. public function save($currpass, $newpass)
  18. {
  19. $cmd = rcmail::get_instance()->config->get('password_chpasswd_cmd');
  20. $username = $_SESSION['username'];
  21.  
  22. $handle = popen($cmd, "w");
  23. fwrite($handle, "$username $newpass\n");
  24.  
  25. if (pclose($handle) == 0) {
  26. return PASSWORD_SUCCESS;
  27. }
  28. else {
  29. raise_error(array(
  30. 'code' => 600,
  31. 'type' => 'php',
  32. 'file' => __FILE__, 'line' => __LINE__,
  33. 'message' => "Password plugin: Unable to execute $cmd"
  34. ), true, false);
  35. }
  36.  
  37. return PASSWORD_ERROR;
  38. }
  39. }
  40.  


Gdy wejdę na użytkownika nobody (bo na takim działa Apache) i wydam polecenie
sudo /usr/syno/sbin/synouser --setpw użytkownik hasło
To następuje poprawna zmiana hasła.
Natomiast z poziomu roundcuba wyskakuje błąd:
PHP Error in /volume1/web/roundcube/plugins/password/drivers/chpasswd.php (32): Password plugin: Unable to execute sudo synouser --setpw
Wygląda na błędne uprawnienia, ale już nie wiem komu i jakie mam ponadawać, aby to działało... Bardzo proszę o pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:50