Читаем Разработка приложений в среде Linux. Второе издание полностью

  5:  * для выбора имени уже установленной службы (может работать "system-auth",

  6:  * проверьте наличие /etc/pam.d/system-auth в своей системе), либо

  7:  * установки системного файла */etc/pam.d/pamexample со следующими

  8:  * четырьмя строками (игнорируя ведущие символы "*") :

  9:  * #%РАМ-1.0

 10:  * auth required /lib/security/pam_unix.so

 11:  * account required /lib/security/pam_unix.so

 12:  * session required /lib/security/pam_limits.so

 13:  *

 14:  * Обратите внимание, что если вы запустите эту программу не как root, то

 15:  * можете столкнуться с ограничениями системы; при управлении учетными

 16:  * записями может произойти сбой, вам может быть не разрешено проверять

 17:  * другие пароли пользователей, в управлении сеансом может произойти

 18:  * сбой - все будет зависеть от того, как сконфигурирована служба.

 19:  */

 20:

 21: #include

 22: #include

 23: #include

 24: #include

 25: #include

 26: #include

 27: #include

 28: #include

 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) {

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных