Автор Тема: промяна на парола  (Прочетена 981 пъти)

mpakmop

  • Участници
  • ***
  • Публикации: 4
    • Профил
промяна на парола
« -: Jun 01, 2010, 15:03 »
Здравейте,
Пиша на Java и трябва да променя парола на потребител. Самото изпълнение на команди не е нищо сложно:
Код:
            Process p = Runtime.getRuntime().exec("ps -ef");
въпросът е обаче, че при passwd трябва да се подаде стара и нова парола.
Някой сблъсквал ли се е с подобно нещо? Предполагам, че най-добрият начин ще е да се смени парола на потребител с едноредова команда, но не можах да открия подобна възможност специално за passwd.
Благодаря предварително за всички мнения и препоръки :)
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: промяна на парола
« Отговор #1 -: Jun 01, 2010, 15:23 »
В конзола зз бих използвал expect
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

mpakmop

  • Участници
  • ***
  • Публикации: 4
    • Профил
Re: промяна на парола
« Отговор #2 -: Jun 01, 2010, 18:32 »
Благодаря за идеята, макар да не ми е още съвсем ясно как да вградя това в кода - вероятно чрез извикване на скрипт? Друго неудобство е, че това ще изисква инсталирането на expect на системата...

Но да питам нещо друго - ровейки се по форумите намерих следното:

echo <password> | passwd <username>

където
<password> = новата парола
<username> = потребителското ми име

И съответно това вече лесно ще може да се изпълни по следния начин:

Код:
Runtime.getRuntime().exec("echo <password> | passwd <username>");

Работя под Ubuntu 9.10 и се опитвам да изпълня посочената по-горе команда в конзолата, но получавам следната грешка:
Authentication token manipulation error.

Някакви идеи?

Активен

remotex

  • Напреднали
  • *****
  • Публикации: 344
    • Профил
Re: промяна на парола
« Отговор #3 -: Jun 02, 2010, 13:29 »
Само да уточня че тези също са външни команди:
Код
GeSHi (Bash):
  1. ps -ef ...
  2. echo ...
  3. passwd ...
Активен

remotex

  • Напреднали
  • *****
  • Публикации: 344
    • Профил
Re: промяна на парола
« Отговор #4 -: Jun 02, 2010, 13:36 »
Навярно забравяш че командата очаква и потвърждение на паролата т.е. тя трябва да се въведе 2 пъти... или нещо от сорта на :
Код
GeSHi (Bash):
  1. (sleep 3; echo "$password";sleep 3;echo "$password" )| passwd "$user" > /dev/null
за повече подробности (най-вече относно сигурността и др. опции напр. --stdin) разгледай коментарите тук:
http://stackoverflow.com/questions/714915/using-the-passwd-command-from-within-a-shell-script
Активен

mpakmop

  • Участници
  • ***
  • Публикации: 4
    • Профил
Re: промяна на парола
« Отговор #5 -: Jun 03, 2010, 15:56 »
Благодаря огромно, remotex!   [_]3
Активен