Троан Эрик В.
Шрифт:
24: #include <pwd.h>
25: #include <sys/types.h>
26: #include <stdio.h>
27: #include <stdlib.h>
28: #include <unistd.h>
29:
30: /* Эта структура может быть автоматической, но она не должна выходить
31: * за пределы между функциями pam_start и pam_end, поэтому в простых
32: * программах легче всего сделать ее статической.
33: */
34: static struct pam_conv my_conv = {
35: misc_conv, /* использование функции диалога TTY из libpam_misc */
36: NULL /* у нас нет специальных данных для передачи в misc_conf */
37: };
38:
39: void check_success(pam_handle_t * pamh, int return_code) {
40: if (return_code != PAM_SUCCESS) {
41: fprintf (stderr, '"%s\n", pam_strerror(pamh, return_code));
42: exit(1);
43: }
44: }
45:
46: int main(int argc, const char ** argv) {
47: pam_handle_t * pamh;
48: struct passwd * pw;
49: char * username=NULL, * service=NULL;
50: int account = 1, session = 0;
51: int c;
52: poptContext optCon;
53: struct poptOption optionsTable[] = {
54: { "username", 'u', POPT_ARG_STRING, &username, 0,
55: "Имя пользователя для аутентификации", "<имя_пользователя>" },
56: { "service", 'S', РОPT_ARG_STRING, &service, 0,
57: "Имя службы для инициализации как (pamsample)",
58: "<служба>" },
59: { "account", 'a', POPT_ARG_NONE|POPT_ARGFLAG_XOR,
60: &account, 0,
61: "включение/выключение управления учетными записями (включено)", "" },
62: { "session", 's', POPT_ARG_NONE|POPT_ARGFLAG_XOR,
63: &session, 0,
64: "включение/выключение запуска сеанса (выключено)", "" },
65: POPT_AUTOHELP
66: POPT_TABLEEND
67: };
68:
69: optCon = poptGetContext("pamexample", argc, argv,
70: optionsTable, 0);
71: if ((c = poptGetNextOpt(optCon)) < -1) {
72: fprintf(stderr, "%s: %s\n",
73: poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
74: poptStrerror(c));
75: return 1;
76: }
77: poptFreeContext(optCon);
78:
79: if (!service) {
80: /* Обратите внимание, что обычное приложение не должно предоставлять
81: * этот параметр пользователю; он присутствует здесь, чтобы можно было
82: * проверить это приложение, не производя изменений в системе,
83: * требующих доступа root.
84: */
85: service = "pamexample";
86: }
87:
88: if (!username) {
89: /* по умолчанию для текущего пользователя */
90: if (!(pw = getpwuid (getuid)) ) {
91: fprintf(stderr, "Имя пользователя не существует");
92: exit(1);
93: }
94: username = strdup(pw->pw_name);
95: }
96:
97: с = pam_start(service, username, &my_conv, &pamh);
98: check_success(pamh, c);
99:
100: с = pam_authenticate(pamh, 0);
101: check_success(pamh, c);
Жанры
- Романы
- Приключения
- Детективы
- Техно триллер
- Дамский детективный роман
- Исторические детективы
- Классические детективы
- Шпионские детективы
- Триллеры
- Юридический триллер
- Крутой детектив
- Полицейские детективы
- Медицинский триллер
- Иронические детективы
- Боевики
- Криминальные детективы
- Политические детективы
- Маньяки
- Зарубежные детективы
- Прочие Детективы
- Спецслужбы
- Драматургия
- Фантастика
- Хентай
- Ранобэ
- Сянься
- Дорама
- Уся
- Аниме
- Космоопера
- Юмористическая фантастика
- Боевая фантастика
- Героическая фантастика
- Технофэнтези
- Готический роман
- Социально-философская фантастика
- Попаданцы
- Историческая фантастика
- Ироническая фантастика
- Зарубежная фантастика
- Историческое фэнтези
- Юмористическое фэнтези
- Детективная фантастика
- Эпическая фантастика
- Мистика
- Космическая фантастика
- Фантастика: прочее
- Постапокалипсис
- Научная фантастика
- Киберпанк
- Альтернативная история
- Ненаучная фантастика
- РПГ
- Стимпанк
- Ироническое фэнтези
- Ужасы и мистика
- Сказочная фантастика
- Фэнтези
- Городское фэнтези
- Эзотерика
- Проза
- Военная проза
- Легкая проза
- Сентиментальная проза
- Советская классическая проза
- Антисоветская литература
- Афоризмы
- Эпистолярная проза
- Новелла
- Семейный роман
- Рассказ
- Классическая проза
- Эпопея
- Эссе
- Проза прочее
- Повесть
- Магический реализм
- Современная проза
- Контркультура
- Роман
- Историческая проза
- Русская классическая проза
- Феерия
- Стихи и поэзия
- Юмор
- Дом и досуг
- Рыбалка
- Охота
- Здоровье детей
- Домашние животные
- Воспитание детей
- Отдых / туризм
- Зарубежная прикладная литература
- Прочее домоводство
- Прикладная литература
- Домашнее хозяйство
- Кулинария
- Медицина и здоровье
- Сделай сам
- Спорт
- Хобби и ремесла
- Образовательная литература
- Сад и Огород
- Здоровье и красота
- Развлечения
- Коллекционирование
- Секс / секс-руководства
- Образование и наука
- Боевые искусства
- Органическая химия
- Обществознание
- Военная история
- Ветеринария
- Ораторское искусство / риторика
- Физика
- Химия
- Семейная психология
- Военная техника и вооружение
- Иностранные языки
- Прочая научная литература
- Психотерапия и консультирование
- Биохимия
- Cпецслужбы
- Астрономия и Космос
- Школьные учебники
- Учебная и научная литература
- Учебники
- Государство и право
- Психология
- Литературоведение
- История
- Научно-популярная литература
- Политика
- Детская психология
- Юриспруденция
- Шпаргалки
- Педагогика
- Физическая химия
- Медицина
- Биофизика
- Языкознание
- Зарубежная образовательная литература
- Зоология
- Геология и география
- Краткое содержание
- Зарубежная психология
- Саморазвитие / личностный рост
- Технические науки
- Религиоведение
- Военное дело
- Личная эффективность
- Аналитическая химия
- Рефераты
- Экология
- Философия
- Альтернативная медицина
- Математика
- Культурология
- Военное дело: прочее
- Ботаника
- Биология
- Словари и Энциклопедии
- Финансы и бизнес
- Отраслевые издания
- Бухучет и аудит
- Недвижимость
- Деловая литература
- Ценные бумаги
- Внешнеэкономическая деятельность
- Торговля
- Зарубежная деловая литература
- О бизнесе популярно
- Стартапы и создание бизнеса
- Корпоративная культура
- Управление, подбор персонала
- Маркетинг, PR, реклама
- Личные финансы
- Работа с клиентами
- Менеджмент
- Интернет-бизнес
- Поиск работы, карьера
- Малый бизнес
- Делопроизводство
- Государственное и муниципальное управление
- Банковское дело
- Экономика
- Книги по IT
- Техника
- Древние книги
- Документальное
- Прочее
- Интерьеры
- Газеты и журналы
- Театр
- Музыка
- Комиксы / манга
- Зарубежная классика
- Современная зарубежная литература
- Изобразительное искусство, фотография
- Мода и стиль
- Искусство и Дизайн
- Зарубежная литература о культуре и искусстве
- Фанфик
- Подростковая литература
- Шахматы
- Кино
- Культура и искусство
- Недописанное
- Классическая литература
- Без Жанра
- Народные
- Книги Для Детей
- Детские остросюжетные
- Сказки
- Детские стихи
- Прочая детская литература
- Детская образовательная литература
- Книги для дошкольников
- Детская фантастика
- Детские детективы
- Книга-игра
- Детский фольклор
- Буквари
- Детская проза
- Детская познавательная и развивающая литература
- Внеклассное чтение
- Зарубежные детские книги
- Детские приключения
Сейчас Читают
Последняя Арена
Греков Сергей
Энфис. Книга 1
Кронос Александр
Пенсия для морского дьявола
Чиркунов Игорь
Возвышение Меркурия. Книга 14
Кронос Александр
Жандарм 2
Семин Никита
Покоривший СТЕНУ 9: Далахан
Мантикор Артемис
Я же бать, или Как найти мать
Юнина Наталья
Para bellum
Ланцов Михаил Алексеевич
Девочка-яд
Коэн Даша
Император
Рави Ивар