powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как заменить пароли во всех скриптах?
13 сообщений из 13, страница 1 из 1
Как заменить пароли во всех скриптах?
    #37124349
Nick Chervov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Ситуация такая: в рабочей директории много скриптов, как shell так и perl. Периодически, в связи с требованиями безопасности, требуется менять пароли на системы. Поэтому необходимо заменить во всех этих скриптах старый пароль old_pass на новый new_pass . Как это сделать в shell скрипте?
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37124499
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sed
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37124981
Nick Chervov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это замечательно, только как именно?
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37125032
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s/старый пароль/новый пароль/g
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37125169
Nick Chervov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А условие как написать?

for `ls` in ... а дальше?
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37125280
BlackStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
for i in *.sh; do
cat $i | sed 's/spam/ham/g' >new.$i;
done
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37126847
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, ссылка по теме попалась: http://ithappens.ru/story/5459
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37128702
Nick Chervov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlackStar
Код: plaintext
1.
2.
3.
for i in *.sh; do
cat $i | sed 's/spam/ham/g' >new.$i;
done


Интересно, но:

1) мне нужно менять не строку на пароль а именно один старый пароль из контекста на новый пароль, чтобы admin/$old_pass стало admin/$new_pass , а не просто $new_pass и т.п.

2) интересует не создание новых файлов > new.$i , а изменение текущих, без их переименований.

Как это сделать в таком случае?
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37129114
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для замены "на месте" у некотрых программ есть специальные опции, скажем, у sed -i. Но не у всякого sed, если нету - то придется делать через временный файл.


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

для sqlplus-подобного как-то так могло бы быть:

sed -e 's/\(scott\)\/\([^ @]*\)/\1\/newpassword/' -i test.sh
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37129968
Nick Chervov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
--null--,

Опция -i видимо не работает в Solaris:
Код: plaintext
1.
sed -e 's/\(scott\)\/\([^ @]*\)/\1\/newpassword/' -i test.sh
sed: illegal option -- i # in Solaris


На данный момент есть такая конструкция...:

Код: plaintext
1.
2.
3.
4.
5.
echo "     Changing old passwords in the all files in current directory: "
echo "     `pwd`; echo;
echo -n "     Enter the old password: "; read OLD_PASSWORD; echo;
echo -n "     Enter the new password: "; read NEW_PASSWORD; echo;

sed 's/${OLD_PASSWORD}/${NEW_PASSWORD}/g' test.sh > test.tmp && mv test.tmp test.sh


но пароли в файле test.sh по прежнему не меняются.

Что я делаю не так?

P.S.: Почему в "Выделение исходников" нет shell/bash?
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37130182
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sed 's/${OLD_PASSWORD}/${NEW_PASSWORD}/g' test.sh > test.tmp && mv test.tmp test.sh

у Вас одинарные кавычки - потому переменные не интерполируются. Замените на двойные.
И еще я считаю хорошим тоном явно указывать опцию -e

sed -e "s/${OLD_PASSWORD}/${NEW_PASSWORD}/g" test.sh > test.tmp && mv test.tmp test.sh

Nick Chervov P.S.: Почему в "Выделение исходников" нет shell/bash?

тоже об этом сожалею. Да услышит нас модератор!
юзаю PHP SRC как наиболее близкий по контексту.
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37130274
Nick Chervov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
--null--,

Большое спасибо!

Конструкция

Код: plaintext
1.
2.
3.
4.
DIRECTORY=`pwd`

 for  i in `ls ${DIRECTORY}`;  do 
	cat $i | sed -e "s/${OLD_PASSWORD}/${NEW_PASSWORD}/g" > tmp_$i && mv tmp_$i $i;
done

отработала отлично!
...
Рейтинг: 0 / 0
Как заменить пароли во всех скриптах?
    #37165197
pwgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nick Chervov,

Код: plaintext
1.
2.
3.
DIRECTORY=`pwd`

 for  i in `ls ${DIRECTORY}`;  do 
никогда так больше не делайте, попадется файл с пробелом или чем-нибудь подобным и будете переписывать.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как заменить пароли во всех скриптах?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]