The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Есть скрипт. но он работает не совсем так, как хотелось бы....."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от Rinsy (ok) on 25-Июн-08, 08:51 
Здравствуйте! Есть скрипт для смены паролей пользователей в автоматическом режиме:

#!/bin/sh
USERNAME=user
USERPASS=password
TEMPFILE=/var/tmp/pass
echo $USERPASS > $TEMPFILE
echo $USERPASS >> $TEMPFILE
echo >> $TEMPFILE
passwd $USERNAME < $TEMPFILE
rm -f $TEMPFILE

И вроде должен работать, но вся загвоздка в том, что при выполнении команды passwd открывается диалоговое окно для ручного ввода данных, при этом данные из временного файла не берутся. Не могу разобраться, в чем загвоздка.
Если кто может, помогите дельным советом или укажите на ошибку в скрипте...
Заранее благодарен...

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от axbat (ok) on 25-Июн-08, 15:27 
>данные из временного файла не берутся. Не могу разобраться, в чем
>загвоздка.
>Если кто может, помогите дельным советом или укажите на ошибку в скрипте...

не знаю, как в Solaris, но, возможно, так не особо отлично от прочих *NIX. там ведь наверняка надо подтверждать пароль при смене? такой "полуинтерактивный" процесс. может, есть смысл посмотреть в сторону скриптов на expect?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от GloryS (??) on 25-Июн-08, 19:18 
>[оверквотинг удален]
>passwd $USERNAME < $TEMPFILE
>rm -f $TEMPFILE
>
>И вроде должен работать, но вся загвоздка в том, что при выполнении
>команды passwd открывается диалоговое окно для ручного ввода данных, при этом
>данные из временного файла не берутся. Не могу разобраться, в чем
>загвоздка.
>Если кто может, помогите дельным советом или укажите на ошибку в скрипте...
>
>Заранее благодарен...

Не знаю как в Солярисе, в линухе есть опция --stdin..
Кстати, во фряхе ее нету...
Но выход есть, см. expect (типа шелл для интерактивных приложений)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от Gennadi (??) on 25-Июн-08, 20:23 

>Но выход есть, см. expect (типа шелл для интерактивных приложений)

http://www.wellho.net/mouth/1174_Installing-Tcl-and-Expect-o...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от Vasia (??) on 25-Июн-08, 21:51 
>
>>Но выход есть, см. expect (типа шелл для интерактивных приложений)
>
>http://www.wellho.net/mouth/1174_Installing-Tcl-and-Expect-o...

гораздо проще поставить http://empty.sourceforge.net

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от skgennady email(ok) on 26-Июн-08, 07:52 
>Не знаю как в Солярисе, в линухе есть опция --stdin..
>Кстати, во фряхе ее нету...

Есть, но по-другому выглядит.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от GloryS (??) on 26-Июн-08, 11:12 
>>Не знаю как в Солярисе, в линухе есть опция --stdin..
>>Кстати, во фряхе ее нету...
>
>Есть, но по-другому выглядит.

Ради повышения уровня знаний...Как?

#passwd -h
passwd: option requires an argument -- h
usage: passwd [-ly] [-d domain] [-h host] [user]
# uname -a
FreeBSD carbase 6.2-STABLE FreeBSD 6.2-STABLE #1: Mon Mar 26 20:48:42 MSD 2007

Или в ней через конвейер можно? (типа echo pass | passwd username)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от skgennady email(ok) on 27-Июн-08, 07:27 
>[оверквотинг удален]
>
>#passwd -h
>passwd: option requires an argument -- h
>usage: passwd [-ly] [-d domain] [-h host] [user]
># uname -a
>FreeBSD carbase 6.2-STABLE FreeBSD 6.2-STABLE #1: Mon Mar 26 20:48:42 MSD 2007
>
>
>Или в ней через конвейер можно? (типа echo pass | passwd username)
>

Под рукой фряхи нет, но уточните сами. Примерно так:
echo pass | pw useradd qwe -h0
если пароль открытый, и так:
echo pass | pw useradd qwe -H0
если зашифрованный.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от Rinsy (ok) on 27-Июн-08, 07:54 
>Под рукой фряхи нет, но уточните сами. Примерно так:
>echo pass | pw useradd qwe -h0
>если пароль открытый, и так:
>echo pass | pw useradd qwe -H0
>если зашифрованный.

Фряха это конечно хорошо. Ну а ближе к теме, по скрипту то как?
Я еще не сильно в Unix системах разбираюсь

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от skgennady email(ok) on 27-Июн-08, 09:47 
>Фряха это конечно хорошо. Ну а ближе к теме, по скрипту то
>как?
>Я еще не сильно в Unix системах разбираюсь

Вам же все ответили уже. И про линукс и про фрибсд есть подсказки. Используйте.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от skgennady email(ok) on 27-Июн-08, 09:49 
>Я еще не сильно в Unix системах разбираюсь

Кстати, есть в линуксе еще chpasswd. Посмотрите маны на эту тему, если нужно сразу нескольким пользователям пароли поменять.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от Gennadi (??) on 27-Июн-08, 16:14 

Как пример скрипта:

=====================================================
#!/bin/sh
USERNAME="Rinsy"
USERPASS="SeCreT"

echo "#!/usr/bin/expect -f
spawn passwd $USERNAME
expect  \"Password:\" { send \"$USERPASS\\n\"}
expect  \"Password:\" { send \"$USERPASS\\n\"}
expect \"#\" {send \"exit\\n\"}
" > _TMP
chmod 755 _TMP
./_TMP
rm -f _TMP
exit
===================================================

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от skgennady email(ok) on 30-Июн-08, 11:06 
>[оверквотинг удален]
>spawn passwd $USERNAME
>expect  \"Password:\" { send \"$USERPASS\\n\"}
>expect  \"Password:\" { send \"$USERPASS\\n\"}
>expect \"#\" {send \"exit\\n\"}
>" > _TMP
>chmod 755 _TMP
>./_TMP
>rm -f _TMP
>exit
>===================================================

Чего мудрить?
echo "Rinsy:SeCreT" | chpasswd

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Есть скрипт. но он работает не совсем так, как хотелось бы....."  
Сообщение от Gennadi (??) on 30-Июн-08, 14:52 

>Если кто может, помогите дельным советом или укажите на ошибку в скрипте...

Вот я и показал ошибку в его скрипте...

:-)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру