|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : mitrohin a.s. 2:5020/400 18 May 2003 09:41:30 To : "mitrohin a.s." Subject : Re: passwd(5) -------------------------------------------------------------------------------- mitrohin a.s. <swp@uni-altai.ru> wrote: mas> Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote: EG>>> А почему sendmail отказывается доставлять почту (550 5.1.1 User unknown) EG>>> юзеру, login name которого начинается с заглавной буквы? EG>> MODIFY_MAILER_FLAGS(`LOCAL',`+u')dnl из sendmail FAQ на sendmail.cf и еще одну фичу заметил при попытке положить письмо локально, если User не найден в mbdb (обычно passwd), то он приводится к нижнему регистру - user - и делается повторный lookup. если я поудаляю User, uSer, USER... то их почта будет валиться на user - IMHO это плохо... src/recipient.c /* ** FINDUSER -- find the password entry for a user. ** ** This looks a lot like getpwnam, except that it may want to ** do some fancier pattern matching in /etc/passwd. ** ** This routine contains most of the time of many sendmail runs. ** It deserves to be optimized. ** ** Parameters: ** name -- the name to match against. ** fuzzyp -- an outarg that is set to true if this entry ** was found using the fuzzy matching algorithm; ** set to false otherwise. ** user -- structure to fill in if user is found ** ** Returns: ** On success, fill in *user, set *fuzzyp and return EX_OK. ** If the user was not found, return EX_NOUSER. ** On error, return EX_TEMPFAIL or EX_OSERR. ** ** Side Effects: ** may modify name. */ int finduser(name, fuzzyp, user) char *name; bool *fuzzyp; SM_MBDB_T *user; { ... *fuzzyp = false; ... /* look up this login name using fast path */ status = sm_mbdb_lookup(name, user); if (status != EX_NOUSER) { if (tTd(29, 4)) sm_dprintf("%s (non-fuzzy)\n", sm_strexit(status)); return status; } /* try mapping it to lower case */ tryagain = false; for (p = name; *p != '\0'; p++) { if (isascii(*p) && isupper(*p)) { *p = tolower(*p); tryagain = true; } } if (tryagain && (status = sm_mbdb_lookup(name, user)) != EX_NOUSER) { if (tTd(29, 4)) sm_dprintf("%s (lower case)\n", sm_strexit(status)); *fuzzyp = true; return status; } ... } /swp --- ifmail v.2.15dev5 * Origin: BSPU InterNetNews site (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/7619f04f436e.html, оценка из 5, голосов 10
|