LinuxForum.Fans
Тема

Shell-скрипт для passwd

Автор: d11esel 28 сообщений 8418 просмотров
#165165

Кто-нибудь делал сабж? Вообще-то хочется это использовать для smbpasswd, но действия пользователя при их вызовах аналогичны. Поделитесь опытом, люди добрые smile

#165169
d11esel написал:
Кто-нибудь делал сабж?

я делал. а в чём проблема-то? и что вы хотите?

#165172

Пример кода хочу. Не знаю, как обработать автоматический ввод пароля и подтверждение.

#165173

по памяти:

[console]echo -e "password\npassword" | passwd username[/console]

в чём проблема-то?

#165178

только что ввел вашу команду в терминале. В ответ:
[console]
Смена пароля для username.
(текущий) пароль UNIX: passwd: Ошибка при операциях с маркером проверки подлинности
[/console]
Вручную все работает.

#165180

Объясню, что я хочу. Хочу с помощью zenity спросить у пользователя его пароль, новый пароль, подтверждение, а потом скриптом выполнить изменение.

#165205

хм... Убунто?

#165210
d11esel написал:
только что ввел вашу команду в терминале. В ответ:

ну...
от рута - работает. От пользователя надо ввести естественно ТРИ строки, а не две, как у меня.

d11esel написал:
Объясню, что я хочу. Хочу с помощью zenity спросить у пользователя его пароль, новый пароль, подтверждение, а потом скриптом выполнить изменение.

и тем пробуравить зияющую дыру... Ну... Ваша система... Только работодателю не показывайте этот скрипт. Хотя работать оно будет конечно...

\n это значит - перевод строки. у меня две строки, а вам нужно три. вот и всё.

#165211

osorkon, какая разница? (я просто не знаю).

#165213

d11esel,
подтвердите, c применением sudo работает?
drBatty,
а в чем дыра? в том что юзер может сменить свой пароль? оО

#165222

С применением sudo с самого начала не работало. Я просто привел один вариант проверки работы той команды.
А цель моя заключается в том, чтобы пользователь, который получит на почту оповещение о том, что срок его действия пароля в AD заканчивается, смог бы нажатием на ярлыке на рабочем столе без труда поменять ему пароль.

#165232
osorkon написал:
подтвердите, c применением sudo работает?

дык sudo само попросит пароль. причём именно с кнопочек. sudo /bin/bash, а потом уж заработает. или sudo script, и в скрипте тоже заработает.

osorkon написал:
а в чем дыра? в том что юзер может сменить свой пароль? оО

в том, что один юзер может подсмотреть пароль другого. или воспользоваться этим скриптом для смены чужого пароля.

#165234
d11esel написал:
что срок его действия пароля в AD заканчивается, смог бы нажатием на ярлыке на рабочем столе без труда поменять ему пароль.

неужели юзер такой пугливый, что ему в терминале три строчки не набрать? oO
ну повесьте ему в фон терминала голую бабу/плюшевого мишку (для мужчины/женщины соотв.), пусть будет уютнее :rolleyes:
мои домашние с лёгкостью входят в графику из консоли. их это не пугает... Какая разница - где набирать?

#165235

drBatty, если я вас правильно понял насчет 3 строк:
[console]
username@pc:~$ sudo /bin/bash
root@pc:~# echo -e "oldpassword\newpassword\newpassword" | passwd username
Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: Ошибка при операциях с маркером проверки подлинности
passwd: пароль не изменён
root@pc:~#
[/console]

в том, что один юзер может подсмотреть пароль другого. или воспользоваться этим скриптом для смены чужого пароля.

думаю, что при использовании smbpasswd у другого пользователя AD не хватит прав для смены чужого пароля.

#165257
d11esel написал:
root@pc:~# echo -e "oldpassword\newpassword\newpassword" | passwd username

что-то я не пойму - вы теперь от рута делаете?

для рута надо ДВЕ строчки,
для пользователя - ТРИ или больше.
пароль может быть слишком короткий и/или слишком простой. Я потому и делал под рутом, потому, что там меньше вопросов...

#165331

стоп. может я чегото не понимаю, но пользователь может сменить СВОЙ пароль без всякого повышения привилегий. хоть я и был всегда в этом почемуто уверен, но вот только что проверил на двух системах, на сусе 11,2 и убунте 11,4. зачем тогда нужно sudo и откуда возьмется эта зияющая дыра?
человеку просто нужна графическая оболочка для смены пользователем пороля. надо - ради бога.
d11esel,
попробуйте
[console]sudo apt-get install libpam-cracklib
sudo pam-auth-update[/console]
и потом эксперементируйтя со скриптом
что бы передать passwd пароль необходимо:
[console]echo password|passwd --stdin[/console]

#165337
osorkon написал:
может я чегото не понимаю, но пользователь может сменить СВОЙ пароль без всякого повышения привилегий.

да. конечно. если только он - это он
именно для этого и нужен первый ввод старого пароля. причём, ввод должен быть с клавы, а не от какого-то вируса/трояна(скрипта/программы). В теории. На практике может проверяет, может нет. программа passwd имеет чрезвычайно опасный suid бит, и на самом деле работает с правами супер-пользователя. даже если её запустил юзер.

osorkon написал:
хоть я и был всегда в этом почемуто уверен, но вот только что проверил на двух системах

давайте закончим маздаевский метод тыка? почему нельзя ман почитать? почему надо проверять?

osorkon написал:
зачем тогда нужно sudo

не знаю. зачем оно вам.

osorkon написал:
человеку просто нужна графическая оболочка для смены пользователем пороля. надо - ради бога

знаете, почему не бывает автоматической системы смены паспортов? сунул старый, она тебе новый выплюнула... не задумывались?

osorkon написал:
echo password|passwd --stdin

в принципе - это ваша система. я вас предупредил.

#165350

drBatty, а что вы можете предложить пользователю для смены его пароля? Он умеет пользоваться почтой, офисными приложениями. Остальное ему не надо, он не ИТ-специалист, а обычный офисный планктон.

#165354

поправте меня если я ошибаюсь:

да. конечно. если только он - это он
именно для этого и нужен первый ввод старого пароля. причём, ввод должен быть с клавы, а не от какого-то вируса/трояна(скрипта/программы). В теории. На практике может проверяет, может нет.

для того что бы проверить он это или нет и нужно ввести ЕГО старый пароль, а известен он третьему лицу или нет это уже вопрос другого характера.

программа passwd имеет чрезвычайно опасный suid бит, и на самом деле работает с правами супер-пользователя. даже если её запустил юзер.

ну и пусть себе работает с правами рута, от нее это и требуется. к тому же хоть ты круть-верть, хоть ты верть-круть, а от того, используещь ты консоль для смены пароля пользователю или юзаешь для этого самописный скрипт в 3 строки suid никуда не денется и passwd схему работы не изменит.
В принципе поразмыслить, подобный скрипт дейсвительно несколько несекьюрный, но имхо не насколько что б давать ему характеристику зиящей дыры, пардон за цепляние к словам.

давайте закончим маздаевский метод тыка? почему нельзя ман почитать? почему надо проверять?

возможно потому что я их и без вас знаю где искать и как читать. не надо хамить и будете жить с миром

знаете, почему не бывает автоматической системы смены паспортов? сунул старый, она тебе новый выплюнула... не задумывались?

а ведь действительно... почему? мой паспорт это только мой паспорт. и если я не имбицил, в третьи руки он не попадет.

в принципе - это ваша система. я вас предупредил.

нет, не предупредили. я человек любознальный по натуре, и, не сочтите за сарказм, отнюдь, если вас не затруднит, не могли бы вы привести пример уязвимости связаной с сабжем.

Войдите или зарегистрируйтесь, чтобы ответить.