Как изменить пароль пользователя UNIX с помощью passwd, если пользователь хранится в базе данных MySQL?

Рискуя тем, чтобы походить на побитый рекорд (потому что я предложил аналогичное решение здесь), это походит на другую ситуацию, в которой программный RewriteMap работал бы хорошо.

В Вашей конфигурации Apache, чем-то как:

RewriteMap rewriter prog:/path/to/script
RewriteRule ^(.*) %{rewriter:$1} [L]

И в Вашем сценарии, чем-то как:

#!/perl 

$| = 1; 

# /bar/ca/marina-del-ray/first-last.html
while () { 
        my @parts = split /\//;
        my @name = split /-/, $parts[4];
        $name[1] =~ s/\.html$//;
        grep { s/-/+/g } @parts;

        print "/$parts[1]/?searchState=$parts[2]&searchCity=$parts[3]&",
                "firstName=$name[0]&lastName=$name[1]", "\n";
}

Это выполнит точно преобразование URL, которое Вы запросили. Обратите внимание на то, что это - просто пример кода - действительное решение должно было бы быть намного более устойчивым.

2
задан 14 April 2011 в 19:38
1 ответ

Обычно, getent shadow ничего не возвратит, если Вы не корень.

Необходимо изменить конфигурацию PAM в/etc/pam.d для использования mysql модуля PAM.

После этого Вы сможете изменить пароли с нормальным passwd команда.

1
ответ дан 3 December 2019 в 13:20

Теги

Похожие вопросы