Тщательный анализ кода позволяет заметить
return (UPAP_AUTHNAK);
}
#else
epasswd = crypt(passwd, pw->pw_passwd);
if (strcmp(epasswd, pw->pw_passwd)) {
return (UPAP_AUTHNAK);
}
#endif
syslog(LOG_INFO, "user %s logged in", user);
/*
* Формируем запись wtmp.
*/
tty = strrchr(devname, '/');
if (tty == NULL) tty = devname;
else tty++;
logwtmp(tty, user, ""); /* Добавляем запись wtmp */
logged_in = TRUE;
return (UPAP_AUTHACK);
}
Тщательный анализ кода позволяет заметить еще одно важное изменение. Если в первоначальной версии программы разрешался доступ к системе пользователю, для которого не был введен пароль в файле /etc/passwd, то теперь такой безответственный пользователь в систему просто допущен не будет.
Теперь нам необходимо модифицировать сборочный файл Makefile, таким образом, чтобы учитывались следующие два фактора:
·
наличие условной переменной USE_SHADOW;
·
подключение библиотеки libshadow.a на этапе компоновки.
Для этого при редактировании Makefile вы должны добавить:
LIBS = -lshadow
а затем найти строку:
COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t
и изменнить ее на:
COMPILE_FLAGS=-I.. -D_linux_=1 -DGIDSET_TYPE=gid_t -DUSE_SHADOW
Все, теперь для запуска примера достаточно запустить make install.
Содержание Назад Вперед