November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Friday, March 5th, 2010 02:25 pm

Напишите регулярное выражение, которое проверяет, что во входной строке есть: хотя бы одна буква (латинская) и хотя бы одна цифра и хотя бы один символ, не являющийся буквой и цифрой.

Типичная такая проверка пароля на сложность. По отдельности это всё элементарно, загвоздка в том, что это надо сделать одним выражением.

В оригинале вопрос был под C#, но в общем-то, можно использовать любой достаточно развитый диалект, я на перле сделал.

Моя версия: /(?=.*\d)(?=.*[a-z])(?=.*[^0-9a-z])/i Чтобы посмотреть, выделите мышкой.

via [info]nikulina

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Friday, March 5th, 2010 02:16 pm (UTC)
что значит "без шелла" в данном контексте?
/usr/bin/scponly - это шелл?
а /bin/false?
Friday, March 5th, 2010 02:18 pm (UTC)
Не шелл это всё. Шелл — это шелл. Ну, ладно, scponly разрешим, хотя я бы прелдпочёл и таких не класть в /etc/master.passwd да технология не позволяет.

а так — е-мейлов у меня на сервере подяка 50, у всех есть пароли, но в /etc/master.rpasswd нет ни одного из них. С WWW/FTP сиутация почти такая же, да.
Friday, March 5th, 2010 02:20 pm (UTC)
Какой еще нахрен master.passwd?
"Вы до сих пор его используете? Тогда мы к вам обязательно заглянем..."
Friday, March 5th, 2010 02:21 pm (UTC)
да ладно тебе придираться, ну shadow, какая разница
Friday, March 5th, 2010 02:26 pm (UTC)
А что такое shadow я вообще не знаю. Нет у меня такого. /etc/master.passwd, /etc/passwd (без паролей) и хэши по ним есть, а shadow — нет ;-)
Friday, March 5th, 2010 05:06 pm (UTC)
Да один хрен... Меня SGID при использовании tcb (http://www.openwall.com/tcb/) как-то напрягает, а вы тут SUID в полный рост пользуете :-/
Friday, March 5th, 2010 08:42 pm (UTC)
Где SUID?
Friday, March 5th, 2010 02:23 pm (UTC)
Хм... А как ты ко мне заглянешь? /etc/master.passwd — он вообще-то "root:wheel -rw------" :)
Friday, March 5th, 2010 02:21 pm (UTC)
ну вот и зачем системным пользователям ftp, smmsp и bind нужен шелл?
Friday, March 5th, 2010 02:22 pm (UTC)
Блин. Ну очевидно, что системные пользователи (технические) я не трогаю.
Friday, March 5th, 2010 02:23 pm (UTC)
а если он почтовый и ftp-для-веба пользователь, то такому зачем шелл?
Friday, March 5th, 2010 02:26 pm (UTC)
Так ему и в системной базе делать нечего. У меня так и есть.
Friday, March 5th, 2010 02:28 pm (UTC)
угу, будем вручную клепать систему аутентификации пользователей нескольких разных сервисов вместо того, чтобы пользоваться имеющейся системной.
мне такой подход не близок.
Friday, March 5th, 2010 02:36 pm (UTC)
Одного виртуального пользователя застроить проще и надёжнее, чем разбиратсья куда какие права раздавать пок аждому из 50-ти UID'ов, учитывая ограниченную модель безопасности юникса.
Friday, March 5th, 2010 02:37 pm (UTC)
зависит от задачи
Friday, March 5th, 2010 02:43 pm (UTC)
С этим не поспоришь. я вот в связи с дешевизной памяти думаю сделаь UID каждому сайту и свой апач каждому сайту + ngnix на входе...
Friday, March 5th, 2010 02:45 pm (UTC)
а я так и сделал :) но пользователи таки системные, домашние директории world-unreadable, а шеллом scponly :)
Friday, March 5th, 2010 02:48 pm (UTC)
Ну да, тут придётся сделать каждого системным пользователем — а как же иначе, если у каждого свой UID?
А вот директории я как раз не хочу делатьб WW и даже GW.
Friday, March 5th, 2010 02:51 pm (UTC)
группа у каждого тоже своя, GW поэтому не существенно.
а WW у меня явным образом отключается при создании очередной домашней директории
Friday, March 5th, 2010 02:54 pm (UTC)
А зачем WW-то делать,
Friday, March 5th, 2010 02:56 pm (UTC)
я, наверное, недостаточно понятно изъясняюсь. я два раза уже написал, что я его НЕ делаю
Friday, March 5th, 2010 02:57 pm (UTC)
Я идиот.я прочёл как world-writable в самом начале а не world-unreadable. Прошу прощения. Обсмотрелся.