- Как сделать небольшую консольную напоминалку паролей на основе PGP., John Doe, 19:09 , 19-Авг-03 (1)
- Как сделать небольшую консольную напоминалку паролей на осно..., Sergey Shurin, 19:38 , 19-Авг-03 (2)
- Как сделать небольшую консольную напоминалку паролей на осно..., John Doe, 02:33 , 20-Авг-03 (3)
- Как сделать небольшую консольную напоминалку паролей на осно..., Alexander Kulinich, 08:08 , 20-Авг-03 (4)
Всё так. Не спорю - варианты взлома хоть и достаточно абсурдны, но реальны. Немного изменил скрипт: #!/bin/sh # Copyright (c) Alexander Kulinich <rulez@rulez.kiev.ua> # senx John Doe <jdatzmail.ru> for security check :)FILE=~/.ssh/passwords EMAIL="rulez@rulez.kiev.ua" FIELDS='a:|r:|f:' FIELDS_NUM=3 TMP_FILE=/tmp/`echo date | md5` umask 22 if [ $# -eq 2 ] then cat ${FILE} | gpg -d -q 2>/dev/null | \ grep -A ${FIELDS_NUM} -E "$1 |$1$" | \ grep " $2:" else if [ $# -eq 1 ] then if [ $1 = '-e' ] then cat ${FILE} | gpg -d -q > ${TMP_FILE} && \ chmod 600 ${TMP_FILE} && \ ${EDITOR} ${TMP_FILE} cat ${TMP_FILE} | gpg --encrypt --recipient ${EMAIL} > ${FILE} cat /dev/urandom | tr -cd A-HJ-NP-Za-km-z1-9 | head -c1000 > ${TMP_FILE} rm -rf ${TMP_FILE} else cat ${FILE} | gpg -d -q 2>/dev/null | \ grep -A ${FIELDS_NUM} $1 | grep -E ${FIELDS} fi else echo USAGE: `basename $0` host [user] fi fi И, я не думаю, что на shell врядли получится написать что-то кардинально совершеннее в плане безопасности. Основная проблемма - надо как-то передавать данные между редактором и gpg. Пайп не выход - в редактор передать данные с его помощью можно, а забрать - врядли. Разве что редактор умеет выдавать на стандартный вывод отредактированный файл, нигде его не сохраняя. Я таких редакторов не знаю. В любом случае - я не ставил себе задачей написать универсальную и абсолютно безопастную утилиту, как не ставил задания писать Троянского коня. В моей ситуации данного решения более чем достаточно. Ну и ещё в свою защиту могу сказать, что редактирование было добавлено лишь для того, чтобы руками не выполнять все те команды, что делаются автоматически - перенаправление вывода в файл, редактирование этого файла, шифрование и удаление его. PS. Может вы мне подскажете, что за область я хотел осветить? :)
- Как сделать небольшую консольную напоминалку паролей на осно..., Alexander Kulinich, 08:15 , 20-Авг-03 (5)
Тьху, блин, пора спать :) Естественно - не TMP_FILE=/tmp/'echo date | md5' а TMP_FILE=/tmp/'date | md5' или даже так: TMP_FILE=/tmp/'echo `date`$$ | md5'
- Как сделать небольшую консольную напоминалку паролей на осно..., Alexander Kulinich, 08:47 , 20-Авг-03 (6)
RND_NUM=`cat /dev/urandom | tr -cd 5-9 | head -c1` TMP_FILE=/tmp/`echo $$ | md5 | tail -c${RND_NUM}``date | md5 | head -c${RND_NUM}`
- Как сделать небольшую консольную напоминалку паролей на осно..., John Doe, 21:05 , 20-Авг-03 (14)
- Как сделать небольшую консольную напоминалку паролей на осно..., Alexander Kulinich, 10:09 , 21-Авг-03 (15)
1. Предложи лучшее решение на sh 2. По сути. Как уде сказали - ложить можно в хоум - если на машине есть рут ещё у кого-то - не выход. Если редактор - vim, то можно сделать такую фишку:touch ${TMP_FILE} && \ chmod 600 ${TMP_FILE} && \ vim -c 'read !gpg -d -q' ${TMP_FILE} && \ cat ${TMP_FILE} | gpg --encrypt --recipient ${EMAIL} > ${FILE} сat /dev/urandom | tr -cd A-HJ-NP-Za-km-z1-9 | head -c1000 > ${TMP_FILE} rm -rf ${TMP_FILE} Но и тут если рут есть ещё у кого-то на долю сунды(в момент сохранения) в ${TMP_FILE} опять же оказываются пароли в чистом виде. Утилиты shred я во FreeBSD не нашел, потому не игрался. А к вопросу со "злым рутом" - "злой рут" может и скрипт подправить так, чтобы без извратов оно ему куда надо все пароли сложило. Выход один - не иметь на машине других пользователей с рутовымы правами.
- Как сделать небольшую консольную напоминалку паролей на осно..., poige, 11:23 , 20-Авг-03 (8)
- Как сделать небольшую консольную напоминалку паролей на осно..., Sergey Shurin, 11:52 , 20-Авг-03 (9)
- Как сделать небольшую консольную напоминалку паролей на основе PGP., Nikolaev D., 08:59 , 20-Авг-03 (7)
- Как сделать небольшую консольную напоминалку паролей на основе PGP., Аноним, 16:14 , 20-Авг-03 (10)
- Как сделать небольшую консольную напоминалку паролей на основе PGP., Nikolaev D., 17:27 , 20-Авг-03 (11)
- Как сделать небольшую консольную напоминалку паролей на основе PGP., Аноним, 18:53 , 20-Авг-03 (13)
- Как сделать небольшую консольную напоминалку паролей на основе PGP., Nikolaev D., 10:14 , 21-Авг-03 (16)
- Адрес статьи изменился, Alexander Kulinich, 12:45 , 16-Мрт-07 (20)
|