Кто-нибудь делал сабж? Вообще-то хочется это использовать для smbpasswd, но действия пользователя при их вызовах аналогичны. Поделитесь опытом, люди добрые smile
Shell-скрипт для passwd
Кто-нибудь делал сабж?
я делал. а в чём проблема-то? и что вы хотите?
Пример кода хочу. Не знаю, как обработать автоматический ввод пароля и подтверждение.
по памяти:
[console]echo -e "password\npassword" | passwd username[/console]
в чём проблема-то?
только что ввел вашу команду в терминале. В ответ:
[console]
Смена пароля для username.
(текущий) пароль UNIX: passwd: Ошибка при операциях с маркером проверки подлинности
[/console]
Вручную все работает.
Объясню, что я хочу. Хочу с помощью zenity спросить у пользователя его пароль, новый пароль, подтверждение, а потом скриптом выполнить изменение.
хм... Убунто?
да
только что ввел вашу команду в терминале. В ответ:
ну...
от рута - работает. От пользователя надо ввести естественно ТРИ строки, а не две, как у меня.
Объясню, что я хочу. Хочу с помощью zenity спросить у пользователя его пароль, новый пароль, подтверждение, а потом скриптом выполнить изменение.
и тем пробуравить зияющую дыру... Ну... Ваша система... Только работодателю не показывайте этот скрипт. Хотя работать оно будет конечно...
\n это значит - перевод строки. у меня две строки, а вам нужно три. вот и всё.
osorkon, какая разница? (я просто не знаю).
d11esel,
подтвердите, c применением sudo работает?
drBatty,
а в чем дыра? в том что юзер может сменить свой пароль? оО
С применением sudo с самого начала не работало. Я просто привел один вариант проверки работы той команды.
А цель моя заключается в том, чтобы пользователь, который получит на почту оповещение о том, что срок его действия пароля в AD заканчивается, смог бы нажатием на ярлыке на рабочем столе без труда поменять ему пароль.
подтвердите, c применением sudo работает?
дык sudo само попросит пароль. причём именно с кнопочек. sudo /bin/bash, а потом уж заработает. или sudo script, и в скрипте тоже заработает.
а в чем дыра? в том что юзер может сменить свой пароль? оО
в том, что один юзер может подсмотреть пароль другого. или воспользоваться этим скриптом для смены чужого пароля.
что срок его действия пароля в AD заканчивается, смог бы нажатием на ярлыке на рабочем столе без труда поменять ему пароль.
неужели юзер такой пугливый, что ему в терминале три строчки не набрать? oO
ну повесьте ему в фон терминала голую бабу/плюшевого мишку (для мужчины/женщины соотв.), пусть будет уютнее :rolleyes:
мои домашние с лёгкостью входят в графику из консоли. их это не пугает... Какая разница - где набирать?
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 не хватит прав для смены чужого пароля.
root@pc:~# echo -e "oldpassword\newpassword\newpassword" | passwd username
что-то я не пойму - вы теперь от рута делаете?
для рута надо ДВЕ строчки,
для пользователя - ТРИ или больше.
пароль может быть слишком короткий и/или слишком простой. Я потому и делал под рутом, потому, что там меньше вопросов...
стоп. может я чегото не понимаю, но пользователь может сменить СВОЙ пароль без всякого повышения привилегий. хоть я и был всегда в этом почемуто уверен, но вот только что проверил на двух системах, на сусе 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]
может я чегото не понимаю, но пользователь может сменить СВОЙ пароль без всякого повышения привилегий.
да. конечно. если только он - это он
именно для этого и нужен первый ввод старого пароля. причём, ввод должен быть с клавы, а не от какого-то вируса/трояна(скрипта/программы). В теории. На практике может проверяет, может нет. программа passwd имеет чрезвычайно опасный suid бит, и на самом деле работает с правами супер-пользователя. даже если её запустил юзер.
хоть я и был всегда в этом почемуто уверен, но вот только что проверил на двух системах
давайте закончим маздаевский метод тыка? почему нельзя ман почитать? почему надо проверять?
зачем тогда нужно sudo
не знаю. зачем оно вам.
человеку просто нужна графическая оболочка для смены пользователем пороля. надо - ради бога
знаете, почему не бывает автоматической системы смены паспортов? сунул старый, она тебе новый выплюнула... не задумывались?
echo password|passwd --stdin
в принципе - это ваша система. я вас предупредил.
drBatty, а что вы можете предложить пользователю для смены его пароля? Он умеет пользоваться почтой, офисными приложениями. Остальное ему не надо, он не ИТ-специалист, а обычный офисный планктон.
поправте меня если я ошибаюсь:
да. конечно. если только он - это он
именно для этого и нужен первый ввод старого пароля. причём, ввод должен быть с клавы, а не от какого-то вируса/трояна(скрипта/программы). В теории. На практике может проверяет, может нет.
для того что бы проверить он это или нет и нужно ввести ЕГО старый пароль, а известен он третьему лицу или нет это уже вопрос другого характера.
программа passwd имеет чрезвычайно опасный suid бит, и на самом деле работает с правами супер-пользователя. даже если её запустил юзер.
ну и пусть себе работает с правами рута, от нее это и требуется. к тому же хоть ты круть-верть, хоть ты верть-круть, а от того, используещь ты консоль для смены пароля пользователю или юзаешь для этого самописный скрипт в 3 строки suid никуда не денется и passwd схему работы не изменит.
В принципе поразмыслить, подобный скрипт дейсвительно несколько несекьюрный, но имхо не насколько что б давать ему характеристику зиящей дыры, пардон за цепляние к словам.
давайте закончим маздаевский метод тыка? почему нельзя ман почитать? почему надо проверять?
возможно потому что я их и без вас знаю где искать и как читать. не надо хамить и будете жить с миром
знаете, почему не бывает автоматической системы смены паспортов? сунул старый, она тебе новый выплюнула... не задумывались?
а ведь действительно... почему? мой паспорт это только мой паспорт. и если я не имбицил, в третьи руки он не попадет.
в принципе - это ваша система. я вас предупредил.
нет, не предупредили. я человек любознальный по натуре, и, не сочтите за сарказм, отнюдь, если вас не затруднит, не могли бы вы привести пример уязвимости связаной с сабжем.