Время зайти

Возвращаясь к нашей теме, один из модулей PAM называется time и контролирует аутентификацию пользователя на основе даты и времени. Это значит, что вы можете запретить вход в систему, допустим, позднее 8 вечера по будням и 9 по выходным, включая другие, более тонкие варианты. Делается это за два шага: подключение модуля и его настройка. Следуя нашей логике, мы в первую очередь остановимся на подключении, но на практике лучше начать с настроек.
Как и вышеупомянутый файл system-local-login, так и файлы PAM для KDE, Gdm и Lightdm (или любого другого настольного менеджера паролей) - включают system-auth (или common- account - на производных Ubuntu). Определив настройки времени в этом файле, мы применим их ко всем методам входа в систему: графическому, консольному или SSH. Отредактируйте файл, добавив в его начало строки
* enable time based controls account required pam_time.so
В начало они ставятся для того, чтобы предыдущая строка не признала аутентификацию до того, как в дело вступит pam_ time. А так войти в систему можно будет не раньше, чем PAM сверит данные о пользователях и времени, когда им разрешен вход. Список расположен в файле /etc/security/time.conf. Вот простой пример конфигурации:
*; * ; jimmy ; SaSu0800-2100
Каждая строка включает четыре поля, разделенных точкой с запятой: первое - имя соответствующей службы PAM, второе - список TTY (имен в логическом терминале), которых касается действие; мы в данном случае решили применить правило ко всем. В третьем поле указывается имя (имена) пользователя (-лей) - мы использовали только одно, но можно ввести и несколько в виде логической строки (jim I bob означает jim или bob). Интересно четвертое поле - это значения времени. Здесь указаны дни недели, с использованием двухбуквенных сокращений, и временные промежутки в формате 24 часа. В нашем примере мы позволяем Джимми входить в систему по субботам и воскресеньям с 8 утра до 9 вечера.
Если вторая отметка времени раньше, чем первая, это понимается как переход на следующий день, и чтобы запретить доступ по ночам в будни, можно использовать
* ; * ; jimmy ; !SuMoTuWeTh2100-0800
Заметим, что ! обозначает «не» (! применимо и к именам пользователей), то есть Джимми не сможет войти в систему в указанное время.
9 enable tiae based controls iccount required paa_tiao.so
3 log all logins to syslog iccount required pa«_warn.so v run scripts on session open and close session optional paa_script.so huth required paa_tally2.so deny«8 unlock_time=20 silent lut h required paa_env.so iuth required paa~unlx.so try_flrst_pa*s llkeauth nullok auth optional paa~perait.so iccount required paaunix .so iccount optional paa_peralt.so
»assword required paa_cracklib.so difok*2 ainlen=8 dcredit=2 ocredit
>assword required paa_unix.so try_first_pass use_authtok nullok sha5
>as sword optional paa_perait.so session required paajliaits.so session required panenv.so session required paa_unix.so session optional paa_perait.so
Есть установленные сокращения для дней: Wk значит будни, Wd - выходные (осторожно, их легко спутать), а Al - это все дни. Двойное упоминание дня отменяет его, то есть AlSa - это все дни, кроме субботы. Будет разумно поместить
*; * ; yourusername ; Al000-2400 в начало файла, чтобы не заблокировать себе вход в систему из-за опечатки. PAM - это не демон, его не нужно перезагружать или передавать ему сигнал после внесения изменения в настройки. Когда вы сохраните файл, он будет активен при следующем запуске PAM.