Титла: Perl и md5 Публикувано от: batsve в Jul 01, 2005, 23:36 Със скрипт на Perl искам да сменя паролите на 50 потребители
едновремено наведнъж. Имам файл с думи-новите пароли /в некриптиран вид/ за потребителите. Как да ги криптирам с md5 например, за да ги вкарам пак със скрипт в /etc/shadow. Това, което ме интересува е Perl може ли да криптира в md5 и как става това Титла: Perl и md5 Публикувано от: mironcho в Jul 01, 2005, 23:57 Пробвай с Digest::MD5 (perldoc Digest::MD5). Ако го няма инсталиран, инсталирай през CPAN или "ръчно":
http://search.cpan.org/CPAN.....tar.gz Титла: Perl и md5 Публикувано от: batsve в Jul 02, 2005, 00:14 Благодаря ти за връзката, преди минута сложих 2.03-ще обновя.
Титла: Perl и md5 Публикувано от: zarhi в Jul 03, 2005, 10:59 А защо се опитваш да утрепеш мравка с булдозер? Тоя перл скрипт дето ще те измъчи едва ли ще го ползваш повече от 1 път. Аз бих постъпил така:
1. Прочитам man chpasswd 2. Правя си текстовото файлче и готово.
Едно допълнение: в интерес на истината не знаех че има chpasswd. Обаче "мисълта" ми протече така: командите които пипат паролите обикновенно имат в имената си 'passw', освен това се намират в някоя от 'bin' директорийте. И затова написах:
Първото което ми хвана окото след passwd беше chpasswd. Следва man chpasswd i работата е свършена. Титла: Perl и md5 Публикувано от: batsve в Jul 05, 2005, 11:26 Много си прав за мравката и булдозера, хареса ми
![]() а скрипта ще се стартира на 2 мин от crontab на root-a Но тъй като не ми е понятно как да направя скрипт за bash, а perl долу горе знам някои неща-пиша си на perl-просто не знам друго ![]() С този скрипт значи проверявам кой се е логнал и който не ми трябва му сменя паролата и го изхвърля от системата. Настоящия проблем ми е как да убия процесите на потребителя petko например и да го изхвърля. zarhi Благодаря ти за подробните напътствия и ще използвам chpasswd - по кратко е наистина и по удобно Титла: Perl и md5 Публикувано от: zarhi в Jul 06, 2005, 09:07 Ами примерно викаш като root "ps au" отделяш само редовете които започват с интересуващия те юзер и следва kill -9 <pid>
Титла: Perl и md5 Публикувано от: batsve в Aug 04, 2005, 14:58 Да, и аз нещо подобно направих
Като root викам ps --User "името на юзера" и после kill Можеш ли да подскажеш как да забраня на потребител petko примерно да се логва в един и същи момент от различни хостове. Същинския ми проблем е как да забраня на petko да се логне над веднъж в едно и също време. Казаха ми, че може да се направи като в .profile на /home/petko се добави проверка. Нещо подобно на сценария "когато petko се логне провери има ли файл /tmp/petko и ако го има не го логвай, ако няма го направи, когато излезе изтрий този файл". Това долу горе ми е ясно но не знам как до го направя за bash. Има ли по лесен начин просто като забрана за друго логване на същия потребител? А chpasswd не можах да разбера нещо синтаксиса май-направих го с passwd --stdin $usr </tmp/pn/$usr смяна на паролата на потребител от файл-върши работа Титла: Perl и md5 Публикувано от: Hapkoc в Aug 04, 2005, 22:09 Ако $USER_HOME е home директорията на user-а, за който става дума, нещо от рода на:
# mkdir /var/lock/loginu # chmod g+w /var/lock/loginu # chgrp users /var/lock/loginu # ls -ld /var/lock/loginu drwxrwxr-x 2 root users 4096 Aug 4 21:54 /var/lock/loginu в .bash_profile пишеш --------- [[ -f $HOME/.bash_profile.custom ]] && . $HOME/.bash_profile.custom LOGIN_FILE=/var/lock/loginu/$USER if [ -f $LOGIN_FILE ]; then echo "Already logged in, exiting" logout else touch $LOGIN_FILE fi --------- в .bash_logout пишеш --------- rm -f /var/lock/loginu/$USER [[ -f $HOME/.bash_logout.custom ]] && . $HOME/.bash_logout.custom --------- # chown root:root .bash_profile .bash_logout # chmod 600 .bash_profile .bash_logout потребителят може да си слага разни настройки, команди и т.н. във файловете .bash_profile.custom и .bash_logout.custom, но не може да редактира .bash_profile и .bash_logout. п.п. решението е примерно и ще работи за bash, ако shell-а на потребителя е друг няма да работи за него. п.п.п. има малка уловка, ако shell-а на потребителя излезе не по нормален начин (да кажем бъде убит), вероятно няма да се изпълни файла .bash_logout и съответно няма да може да се логне user-а. Титла: Perl и md5 Публикувано от: в Aug 04, 2005, 23:37 как потребителите влизат в системата ?
по колко различни начина може да се направи това ? при pam, вероятно от /etc/security/limits.conf (maxlogins ?) може да се зададе. аз намирам за безсмислено да се поставя такова ограничение. Титла: Perl и md5 Публикувано от: в Aug 04, 2005, 23:46 о-о-п-п-с темата е в 'Web development' , т.е. ограничението зависи от web приложението. кое е то ?
Титла: Perl и md5 Публикувано от: batsve в Aug 05, 2005, 14:33 rpetrov,
как да опиша там само имената на юзерите които искам без значение на домейна от който влизат да им задам maxlogins 1 вече е ясно Приложението не е web-грешката за това е моя, просто започнах с едно а излязоха други въпроси като последния за логването. За мен има смисъл да забраня втори логвания, затова и питам тук знаещите. Потребителите влизат в системата през графика - Гном по подразбиране свъзможности за избор кде и хдм, обикновено гном. Hapkoc, Благодаря ти за подробните примери, ще ги пробвам и ще кажа как работят. За kill имам решение мисля. Един скрипт ми се изпълнява от root crontab всяка минута- мисля да добавя проверка в него с w или who след която да изтрие всички /var/lock/loginu/$USER които не се показват. Мисля да пробвам и двата варианта, пък после ще видим ![]() Титла: Perl и md5 Публикувано от: batsve в Aug 05, 2005, 15:01 rpetrov
Благодаря ти, просто пишеш името и това е Решението е било по просто отколкото си мислех И скрипта на Hapkocще ми влезе в работа но за друго Благодаря на всички за помощта последна редакция За всичко, което съм питал тук съм намерил решения благодарение на помощта на горните хора. Ако някой има подобни въпроси или проблеми да ми пише, ще помагам с каквото знам. Успех |