Ubuntu <= 11.10 Пользователь следует этому руководству для пользователей Ubuntu> = 11.10 прочитайте примечание на нижней странице:
Да, все эти программы устарели, и на все ваши вопросы здесь даны ответы.
Когда мы говорим о том, чтобы заставить пользователя выйти из системы, мы на самом деле говорим о введении временных ограничений для учетной записи для доступа к системе или службам. Самый простой способ реализовать временные ограничения - использовать подключаемый модуль под названием Linux-PAM .
Сменный модуль аутентификации (PAM) - это механизм аутентификации пользователей. В частности, мы собираемся использовать pam_time
модуль для управления синхронизированным доступом пользователей к услугам.
Используя pam_time
модуль, мы можем установить ограничения доступа к системе и / или определенным приложениям в разное время дня, а также в определенные дни или по различным терминальным линиям. В зависимости от конфигурации, вы можете использовать этот модуль, чтобы запретить доступ отдельным пользователям на основе их имени, времени суток, дня недели, услуги, на которую они обращаются, и их терминала, с которого они делают запрос. ,
При использовании pam_time
вы должны завершить синтаксис каждой строки (или правила) в /etc/security/time.conf
файле новой строкой . Вы можете комментировать каждую строку знаком решетки [#], и система будет игнорировать этот текст до новой строки.
Вот синтаксис для правила:
услуги; TTYs; пользователей; раз
The first field — services — is a logic list of PAM service names.
The second field — tty — is a logic list of terminal names.
The third field — users — is a logic list of users or a netgroup of users.
The fourth field — times — indicates the applicable times.
Вот пример типичного набора правил:
login ; * ; !bobby ; MoTuWeThFr0800-2000
login ; * ; !root ; !Al0000-2400
http ; * ; !bobby ; MoTuWeThFr0800-2000
http ; * ; !root; !Al0000-2400
Эти правила ограничивают вход пользователя в систему между 08:00 и 2000 годами, а также ограничивают доступ в Интернет в эти часы. Root сможет войти в систему в любое время и просматривать Интернет все время.
Примечание . Система регистрирует ошибки с этими правилами как syslog (3).
В Ubuntu Linux можно назначить вашему компьютеру временные ограничения, чтобы предотвратить подключение одного или нескольких пользователей к вашей системе. С учетом временных ограничений вы можете, например, ограничить доступ к компьютеру для ваших детей (короче говоря , своего рода родительский контроль) или даже защитить соединение с вашим сервером в определенные часы.
Ручная настройка
Понять, что вы будете делать
В этом руководстве мы будем использовать PAM (сменные модули аутентификации, английские сменные модули аутентификации). Это позволяет вам контролировать аутентификацию пользователей при их подключении. Затем мы будем использовать файлы конфигурации безопасности, чтобы определить разрешенные часы входа в систему. Эти манипуляции могут быть выполнены в любой версии Ubuntu и требуют только простого текстового редактора (vim, emacs, nano, gedit, kate и многие другие). Включить ограничения часов через модуль PAM
Прежде всего, сначала перейдите к тому /etc/pam.d/
, где находятся все настраиваемые сервисы:
$ Ls /etc/pam.d/
atd common-account common-session gdm login ppp sudo
chfn common-auth cron gdm-autologin Other samba
chsh common-cupsys gnome-screensaver password passwd su
Если мы хотим заблокировать соединение с компьютером, нам придется изменить службу gdm. Отредактируйте файл так, чтобы gdm добавил эту строку кода (в конце файла):
account required pam_time.so
GDM - это дистрибутивы экрана входа в систему Ubuntu, Edubuntu и Xubuntu. Для Kubuntu, который использует KDE, вызывается служба kdm, это будет файл, который он откроет. И все готово для настройки PAM! Это позволит контролировать часы на этом сервисе.
Если у вас есть сервер, у вас, вероятно, нет графического интерфейса. В этом случае GDM / KDM не устанавливается и соединение не будет заблокировано. Чтобы предотвратить подключение к TTY, вы должны изменить логин того же файла и добавить ту же строку кода, что и ранее подтвержденная. Это действие также распространяется на людей, которые установили графический интерфейс и хотят заблокировать доступ к экрану входа и терминалам.
Настроить часы доступа
Теперь, когда служба PAM активирована, нам нужно только настроить время доступа. Откройте /etc/security
. Доступно несколько файлов конфигурации:
$ Ls /etc/security/
access.conf namespace.conf pam_env.conf
group.conf namespace.init time.conf
limits.conf opasswd time.conf.bak
Отредактируйте файл time.conf
. Некоторые пояснения и примеры (на английском), представляющие. Чтобы установить расписания доступа, скопируйте и вставьте следующую строку кода (как всегда в конце файла):
*;*;user;scheduler
Вместо поля пользователя введите учетную запись, которую вы хотите заблокировать.
Если вы хотите заблокировать несколько пользователей, введите их логин в строке, разделенные знаком | оператор. Например, если я хочу заморозить счета Патрика, Джона и Эмили:
*;*;Patrick|jean|emilie;scheduler
К минусам, если вы хотите заблокировать доступ к системе для всех пользователей, кроме одного, используйте! перед заинтересованным лицом. Например, если я хочу, чтобы доступ к компьютеру был запрещен всем пользователям, кроме Николаса и Ксавьера:
Nicolas *;*;!|xavier;scheduler
Обратимся теперь к полевым зонам. В этом поле, что на выбор дней и часов будет разрешено подключение возможно. Сначала вы должны указать день недели, используя следующие сокращения:
Mo : Monday Fr : Friday Wd : Sa/Su
Tu : Tuesday Sa : Saturday wk : Mo/Tu/We/Th/Fr
We : Wenesday Su : Sunday
Th : Thursday Al : All Days
Будьте осторожны, чтобы не перепутать сокращения Wk и Wd, вводящие в заблуждение! особенно плохо идентифицируется в интернете: вы легко можете найти противоречивую информацию!
Затем мы указываем сроки. Они должны быть отформатированы 24 часа, состоящий из 4 цифр. Например, чтобы ограничить 15:17 до 6:34 вечера, мы пишем: 1517-1834. Чтобы позволить Мари подключиться только во вторник с 15:17 до 18:34, мы получаем результат:
*;*;marie;Tu1517-1834
Соединения вне этих часов будут запрещены. Что касается пользователей, то можно использовать операторы | а также! указывать несколько раз (знак! означает, что разрешены все часы входа в систему, кроме тех, которые показаны).
Две звезды (подстановочные знаки) в начале строки кода - это, соответственно, поля tty services. Поскольку вы хотите заблокировать весь доступ к системе, нет необходимости указывать, какой сервис или какой tty вы хотите заблокировать. Однако, если вы хотите запретить использование определенного сервиса, просто укажите его в следующем примере:
login;tty1|tty4|tty5;marie;!Wd0000-2400
Таким образом, пользователь жениться не может подключиться к TTY 4 и 5 в выходные дни.
Некоторые примеры графика ограничений
Матильде разрешено подключаться каждый день с 13:20 до 15:20 и с 16:00 до 20:30.
*;*;mathilde;Al1320-1520|Al1600-2030
Стоун, Фрэнк и Флориан могут подключаться с 14:00 до 18:45 в будние дни и с 14:00 до 22:15 в выходные дни:
*;*;Stone|franck|florian;Wk1400-1845|Wd1400-2215
Olive никогда не разрешается подключаться. Джессика может войти в среду с 13:00 до 16:00:
*;*;olivier;!Al0000-2400
*;*;jessica;We1300-1600
2 разные строки, по два разных времени для каждого пользователя Истечение срока сессии
Когда сеанс истекает (он превышает время, пока пользователь уже подключен), PAM может связаться с пользователем. Хотя матильда соединяется в течение отведенного времени, совершенно свободно превышать эти часы! Для этого мы будем использовать новую программу: «cron». Это приложение выполняет команды с интервалами времени. В нашем случае мы будем использовать команду «skill-KILL-u», чтобы отключить пользователя по окончании сеанса. Обработка очень проста. Просто отредактируйте файл ´ / etc / crontab´. Затем добавьте следующую строку кода:
Minute Hour Day * * (s) root skill -KILL -u User
Как и раньше, замена полевых расписаний минут и желаемого времени. Затем укажите дни, которые должны быть забанены, или просто введите звездочку (*), чтобы указать все дни недели. Наконец, измените поле, используемое для блокировки учетной записи, и вуаля!
Дни не замечают так же с cron
работой! Вот список сокращений, которые будут использоваться с этой программой:
mon : monday fri : friday
tue : tuesday sat : saturday
wed : wednesady sun : sunday
thu : thursday * : all hours
Некоторые примеры cron
работ (с примерами раз в предыдущем разделе)
Джессика может войти в среду с 13:00 до 16:00.
-> Отключение: вторник в 16:00.
00 16 * root * wed skill -KILL -u jessica
Матильде разрешено подключаться каждый день с 13:20 до 15:20 и с 16:00 до 20:30.
-> Отключение: ежедневно с 8:30 до 15:20 ET.
20 15 * * * root skill -KILL -u mathilde
30 20 * * * root skill -KILL -u mathilde
Стоун, Фрэнк и Флориан могут подключаться с 14:00 до 18:45 в будние дни и с 14:00 до 22:15 в выходные.
-> Отключить (1): понедельник, вторник, среда, четверг и пятница, в 18:45. -> Отключить (2): суббота и воскресенье в 22:15.
45 18 * * mon,tue,wed,thu,fri root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
15 22 * * sat,sun root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
Команда skill-KILL-u отключает пользователя от GUI, а также от TTY. Он идеально подходит для администраторов серверов. Однако эта команда является немедленной, и отключение будет выполнено без уведомления. Поэтому было бы предпочтительнее запретить установку данного устройства пользователям данного компьютера или сети!
Можно запретить пользователям wall
запуск команды за cron
несколько минут до истечения таймфрейма , который будет отображаться в терминалах всех пользователей.
40 18 * * Mon,Tue,wed,thu,fri root echo "end of session in 5 minutes" | wall
Для предотвращения пользователей от GUI можно использовать вместо стены команду notify-send
в пакете libnotify-bin
40 18 * * Mon,Tue,wed,thu,fri stone DISPLAY=:0 notify-send "end of session in 5 minutes"
Ubuntu 11.10 пользователя
Я видел вокруг пользователя, имеющего проблемы с Пэм, и я видел много ошибок по этому поводу, так почему причина ??? это так просто Ubuntu 11,10 doens't поддержка GDM больше новый менеджер дисплея lightGDM проблема последующей где магазин эта директива account required pam_time.so
я думаю , что в /etc/pam.d/lightdm
или /etc/pam.d/lightdm-autologin
но ошибка как ???
так что вы можете проверить эти 2 файла журнала LightGdm:
- /var/log/lightdm/lightdm.log
- /var/log/lightdm/x-0.log
или запустите LightGdm в режиме отладки:
LightDM - дебаг
или сообщить об ошибке:
убунту-баг лайтдм
Я сообщаю об ошибке здесь, так что скрестите палец и подождите ....