Ubuntu ограничение по времени

Обновлено: 07.07.2024

Оригинал: How to Specify Time Limit for a Sudo Session
Автор: Vitux
Дата публикации: 7 сентября 2018 года
Перевод: А. Кривошей
Дата перевода: март 2019 г.

При работе с командой sudo для выполнения административных задач в Linux вы, возможно, заметили, что даже если вы предоставили пароль sudo некоторое время назад, через некоторое время вас попросят предоставить его снова. Это происходит из-за ограничения времени сеанса sudo, которое по умолчанию равно 15 минут. Если вы введете команду sudo через 15 минут даже в том же сеансе терминала, вас попросят ввести пароль еще раз. Как администратор Linux, вы, возможно, захотите увеличить или сократить ограничение времени для сеанса sudo по сравнению с пятнадцатью минутами по умолчанию.

В этом руководстве описывается, как можно внести очень простые изменения в файл /etc/sudoers, чтобы указать ограничение времени для сеанса sudo. Команды, упомянутые в этой статье, были выполнены в Ubuntu 18; однако, они делают то же самое в более старых версиях Ubuntu.

Задаем время X для сеанса Sudo

В этом примере мы изменим ограничение времени нашего сеанса sudo на 10 минут:

Откройте терминал Ubuntu, нажав Ctrl + Alt + T или через Ubuntu Dash.

Так как вам нужно отредактировать файл sudoers, расположенный в папке etc, введите следующую команду:

sudo visudo

Вам будет предложено ввести пароль пользователя.

Вам наверное интересно, почему мы не открываем файл sudoers, как мы открываем другие текстовые файлы. Ответ в том, что в отличие от других текстовых редакторов, visudo проверяет синтаксис текста, который вы вводите в файл. Это избавляет вас от любых ошибочных изменений, которые могут привести к серьезным последствиям. Например, внесение некорректных изменений в файл sudoers может стоить вам возможности войти в систему как привилегированный пользователь.

Введите свой пароль и нажмите Enter. Файл sudoers откроется в редакторе Nano, так как это текстовый редактор по умолчанию для Ubuntu 18.04.

файл sudoers

На скриншоте выше вы можете увидеть следующую строку:

Эта строка отвечает за ограничение времени вашей сессии sudo. Вам необходимо внести следующие изменения в эту строку:

Здесь x - это время в минутах, которое вы можете указать, чтобы установить требуемый лимит времени. Обратите внимание на следующие моменты при установке этого тайм-аута:

Если вы установите время ожидания равным 0, ваша сессия будет длиться всего 0 минут. Это означает, что вам будет предложено вводить пароли для каждой из ваших команд sudo.

Если вы установите это время меньше нуля (отрицательное), команда sudo не будет работать должным образом.

В этом примере я сокращаю время по умолчанию с 15 минут до 10 минут с помощью следующих изменений в моем файле sudoers:

сокращение времени сессии sudo по умолчанию с 15 минут до 10 минут

Нажмите Ctrl + X, чтобы выйти из файла после внесения необходимых изменений. Вам будет задан вопрос, хотите ли вы сохранить измененный файл. Нажмите Y, чтобы сохранить изменения.

вопрос о сохранении измененного файла

Вам также будет предложено указать имя файла для сохранения. Пожалуйста, нажмите Enter, так как мы не хотим менять имя файла.

имя файла для сохранения

Ваши изменения будут сохранены, и ваш сеанс sudo будет длиться указанное вами время.

Как задать время действия сеанса sudo до закрытия терминала

С помощью простой команды вы можете позволить вашему сеансу sudo длиться до тех пор, пока вы не закроете терминал, независимо от того, как долго терминал остается открытым. Вам не нужно будет вводить пароль для любой команды, для которой требуется разрешение sudo после выполнения этой команды:

Завершение сеанса sudo

После того, как вы ввели пароль для sudo, вы можете прекратить сеанс sudo даже до истечения срока, указанного в файле sudoers, с помощью следующей простой команды:

Обратите внимание, что эта команда не завершит сеанс, если вы использовали «sudo -s» во время терминального сеанса.

Таким образом, вы можете сократить или увеличить длительность сеанса sudo, внеся изменения в одну строку в файле /etc/sudoers. Вы также можете использовать другие команды, упомянутые в этой статье, чтобы завершить сеанс sudo или продлить его, пока не закончится сеанс терминала.

В то время как работа с sudo управляет для выполнения задач администрирования в Linux, Вы, возможно, заметили, что даже при обеспечении sudo пароля только что Вас просят обеспечить его снова через какое-то время. Это происходит из-за ограничения по времени Вашей sudo сессии, которая установлена на 15 минут по умолчанию. При вводе команды sudo после этих 15 минут даже на том же терминальном сеансе Вас просят ввести пароль снова. Как администратор Linux, Вы могли бы хотеть удлинить или сократить ограничение по времени для sudo сессии, чем значение по умолчанию пятнадцать минут.

Это учебное руководство описывает, как можно внести очень простые изменения в/etc/sudoers файле для определения ограничения по времени для sudo сессии. Команды, упомянутые в этой статье, были выполнены в Ubuntu 18; однако, они выполняют то же в более старых версиях Ubuntu также.

Определите время X для сессии Sudo

В этом примере мы изменим ограничение по времени нашей sudo сессии к 10 минутам. Выполните эти шаги для изменения ограничения по времени для sudo сессии, к, пока Вы хотите:

Откройте свой Терминал Ubuntu путем нажатия Ctrl+Alt+T или через Тире Ubuntu.

Так как необходимо отредактировать sudoers файл, расположенный в и т.д. папки, введите следующую команду:


Вас попросят ввести пароль для sudo пользователя.

Вы будете задаваться вопросом, почему мы не открывающий sudoers файл как, мы открываем другие текстовые файлы. Ответ - то, что в отличие от других текстовых редакторов, visudo проверяет синтаксис текста, который Вы вводите в файле. Это сохраняет Вас от внесения любых дефектных изменений, которые могут вызвать Вас серьезные последствия. Например, создание дефектных редактирований в sudoers файл может стоить Вам неспособности войти в систему как привилегированный пользователь для выполнения любой из поднятых функций.

Введите свой пароль и войдите. sudoers файл откроется в редакторе Nano, поскольку это - текстовый редактор по умолчанию для Ubuntu 18.04.


В вышеупомянутом изображении Вы видите следующую строку:

Эта строка ответственна за ограничение по времени Вашей sudo сессии. Необходимо внести следующие изменения в эту строку:

Здесь x является временем в минутах, которые можно определить для установки необходимого ограничения по времени. Отметьте следующие моменты при установке этого тайм-аута:

При определении тайм-аута, чтобы быть 0, сессия продлится только 0 минут. Это означает, что Вас попросят ввести пароли для каждой из Ваших команд sudo.

Если Вы установите на этот раз, чтобы быть меньше, чем нуль (в отрицании), команда sudo не будет работать правильно.

В этом примере я сокращаю время по умолчанию без 15 минут 10 минут через следующие изменения в моем sudoers файле:


Нажмите Ctrl+X для выхода из файла после внесения необходимых изменений. Вас спросят, хотите ли Вы сохранить измененный файл. Потребуйте у Y сохранения изменений.


Вас также попросят определить имя файла, которое будет сохранено. Нажмите Enter, поскольку мы не хотим изменять имя файла здесь.


Ваши изменения будут сохранены, и Ваша sudo сессия продлится до указанных минут каждый раз, когда Вы используете команду sudo.

Сессия Sudo набора в последний раз, пока терминал не закрывается

Посредством простой команды можно позволить sudo сессии продлиться, пока Вы не закрываете терминал, неважно, сколько времени терминал остается открытым. Вас не попросят ввести Ваш пароль ни для какой команды, которая требует sudo разрешения после выполнения этой команды:

Завершите sudo сессию

После обеспечения пароля для sudo можно завершить sudo сессию даже, прежде чем ограничение по времени определило в sudoers файле посредством следующей простой команды:

Обратите внимание на то, что эта команда не завершит сессию, если Вы использовали “sudo-s” во время терминального сеанса.

Так, это - то, как можно сократить или удлинить продолжительность времени для sudo сессии путем внесения короткого изменения в/etc/sudoers файле. Можно также использовать другие команды, упомянутые в этой статье, чтобы завершить sudo сессию или заставить его продлиться, пока терминальный сеанс не длится.

Родительский контроль посредством Linux-PAM

Используя pam_time модуля, мы можем установить ограничения на доступ к системе и / или к конкретным приложений в разное время pm, а также в определенные дни или по различным временным отрезкам. В зависимости от конфигурации, вы можете использовать этот модуль для запрета доступа отдельным пользователям на основе их имени, времени суток, pm недели, сервиса, на которые они претендуют и их терминалов, из которых они делают запросы.

Ubuntu = 11.10 прочитайте заметку внизу страницы :

На данный момент существует мало софта для осуществления родительского контроля в linux. И ещё меньше дающего полную свободу в настройке.Ниже приводится решение данной задачи с помощью модуля Linux-PAM.

Pluggable Authentication Module (PAM) это механизм аутентификации пользователей. В частности, мы собираемся использовать pam_time модуль для контроля над доступом юзеров к системе.

Используя pam_time модуля, мы можем установить ограничения на доступ к системе и / или к конкретным приложений в разное время pm, а также в определенные дни или по различным временным отрезкам. В зависимости от конфигурации, вы можете использовать этот модуль для запрета доступа отдельным пользователям на основе их имени, времени суток, pm недели, сервиса, на которые они претендуют и их терминалов, из которых они делают запросы.

Вот синтаксис правила:

Вот пример типичного набора правил:

Эти правила ограничивают пользователя bobby от входа между 0800 и 2000 часов и они также ограничивают доступ в Интернет в эти часы.

Примечание: Система регистрирует ошибки с этими правилами, как syslog(3).

В Ubuntu Linux, можно назначить для ограничения компьютерного времени, чтобы предотвратить подключение одного или нескольких пользователей к системе. Со временем ограничения, можно, например, ограничить доступ к компьютеру для ваших детей (своего рода родительский контроль), или даже защитить подключение к серверу в определенные часы.

Поймите, что вы будете делать

На протяжении этого урока мы будем использовать PAM (Pluggable Authentication Modules, английский Pluggable Authentication Modules). Это позволяет контролировать аутентификацию пользователей при подключении. Затем, мы будем использовать файлы конфигурации безопасности для определения времени входа допуска. Эти манипуляции могут выполняться на любой версии Ubuntu, и требуют лишь простой текстовый редактор (Vim, Emacs, Nano, Gedit, Kate и тп). Итак, нужно включить “Ограничения часов доступа” через модуль PAM.

Прежде всего, проследуйте в каталог /etc/pam.d/, где находятся все конфигурационные файлы:

Если мы хотим заблокировать доступ к компьютеру, мы должны изменить службу gdm. Измените so файл у gdm и добавьте в конец файл ав строчку ниже:

GDM это окно логина в дистрибутивах семейства Ubuntu (Ubuntu, Edubuntu and Xubuntu). Для Kubuntu, в которой используется окружение KDE, этот сервис называется kdm, в соответствии с этим, файл будет называться также. Всё, Вы включили использование PAM для контроля над временем доступа к системе.

Если у Вас сервер, то скорее всего GUI Вы не используете. Соответственно GDM / KDM не установлен и доступ не будет заблокирован. Для предотвращения доступа к консоли, необходимо изменить логин и того же файла, и добавить те же строки кода, которые названы выше. Это действие также распространяется на людей, которые используют GUI и хотят, чтобы блокировать доступ к экрану входа и терминалу.

Настройка времени доступа.

Теперь, когда служба PAM включена, нам остаётся только настроить время доступа к системе. Откройте каталог /etc/security. Здесь находятся несколько конфигурационных файлов:

Отредактируете файл time.conf. Чтобы настроить доступ, скопируйте и вставьте следующий код в конец файла:

Вместо user введите логин того пользователя, которого нужно ограничить в доступе

Если вы хотите заблокировать несколько пользователей, введите их логины строку, разделеляя их этим символом |. Например, если я хочу заблокировать доступы у Patrick, John and Emily, то синтаксис будет такой:

Если вы хотите, чтобы заблокировать доступ к системе для всех пользователей, кроме определенных, используете символ !. Например, если я хочу запретить доступ к компьютеру для всех пользователей, кроме Nicolas и Xavie, синтаксис такой:

Обратимся теперь к полю временных зон. В этой области находится выбор дней и часов, когда будет разрешен доступ. Прежде всего, необходимо указать день недели, используя следующие сокращения:

Будьте внимательны и не путайте сокращений Wk и Wd!

Затем мы указываем сроки. Они должны быть отображены в 24 часовом формате, состоящим из 4 цифр. Например, чтобы ограничить 3:17 pm до 6:34 pm, мы пишем: 1517-1834. Чтобы разрешить Marie доступ только во вторник, с 3:17 pm до 6:34 pm, мы получим результат:

Доступ вне этих часов будет запрещен. Что касается пользователей, то можно использовать операторы | и ! чтобы указать несколько временных зон (индикатор ! указывает, что все время входа допускается, за исключением того, которое будет показано).

Две звезды (символы) в начале строки кода. Так как вы хотите заблокировать доступ к системе, нет необходимости указывать, какие сервисы или терминалы вы хотите заблокировать. Однако, если вы хотите, чтобы предотвратить использование конкретного сервиса, просто укажите его в качестве следующего примера:

Таким образом, пользователь Marry не может подключиться к терминалу, 4 и 5 в выходные дни.

Некоторые примеры расписания ограничений

Матильда может подключаться каждый день с 1:20 pm до 3:20 pm и с 4:00 pm до 8:30 pm:

Stone, Frank и Florian разрешено подключаться до 2:00 pm до 6:45 pm в будние дни и 2:00 pm до 10:15 pm на выходные:

Olive никогда не позволено в доступе. jessica может войти в среду с 1:00 pm до 4:00 pm:

Два способа, для двух различных времени для каждого пользователя. Истечение сессии

Когда сессия истекает (превышается время, пока пользователь уже подключен), PAM может настигать пользователя. Например, в то время как mathilde заходит в систему во время позволенного времени! Для этого мы будем использовать новую программу: cron. Это приложение выполняет команды с интервалом во времени. В нашем случае, мы будем использовать команду skill-KILL-u чтобы отключить сеанс, когда сессия заканчивается. Обработка очень проста. Просто отредактируйте файл /etc/crontab . Добавьте следующие строки кода:

Как и прежде, заменив поле Минута и желаемое время. Затем заполните дни с запретами или просто введите звездочку (*), чтобы указать все дни недели. Наконец, в поле учетной записи пропишите логин, который должен быть заблокирован.

Дни не отмечаем в cron таким же способом! Вот список сокращений, которые будут использоваться с этой программой:

Несколько примеров работы cron (с примерами времени из предыдущей секции)

jessica может войти в среду с 1:00 pm до 4:00 pm

-> Disconnect: Tuesday at 4:00 p.m..

mathilde может входить в систему каждый день с 1:20 pm до 3:20 pm и с 4:00 pm до 8:30 pm.

-> Disconnecting: Daily, 8:30 p.m. to 3:20 p.m. ET.

Stone, Frank and Florian разрешено входить до 2:00 pm до 6:45 pm в будние дни и 2:00 pm до 10:15 pm на выходные

-> Disconnect (1): Monday, Tuesday, Wednesday, Thursday and Friday, at 18:45. -> Disconnect (2): Saturday and Sunday at 10:15 p.m..

Команда skill-KILL-u отключает пользователя с графическим интерфейсом, а также консоль. Вполне пригодно для администраторов сервера. Однако, эта команда является немедленной и отключение будет производиться без предварительного уведомления.

Можно предупредить пользователей командой wall запущенной cron за несколько минут до конца срока, которая будет отображаться в терминалах всех пользователей.

Для уведомления пользователей с GUI можно использовать wall с коммандой notify-send в пакете libnotify-bin

Для пользователей Ubuntu 11.10

IРяд пользователей испытывают проблемы с Pam. Причина проста, Ubuntu 11.10 Не поддерживает более GDM теперь используется lightGDM. Проблема начинается с расположения директивы account required pam_time.so думается, что она тут /etc/pam.d/lightdm или тут /etc/pam.d/lightdm-autologin

Все крутится вокруг двух лог-файлов LightGdm:

Или запустите LightGdm в debug mode :

Или сообщите о проблеме:

Я сообщил о баге тут . Ждем починки.

Примечание переводчика:

Статья является переводом 2ого комментария отсюда . Сообщайте об ошибках перевода в комментариях или через форму контакта.

По части бага описанного в конце статьи. Судя по багрепорту всё уже работает.

Как и у всех остальных, у пользователей GNU/Linux есть дети. И так или иначе, приходит то время, когда они получают доступ к компьютеру. В этот момент, некоторые родители хотели бы несколько ограничить их возможности, чтобы дети не выходили за безопасные рамки времени работы за ПК и не заходили в определенные уголки сети.

К сожалению, большинство дистрибутивов GNU/Linux не имеют предустановленного программное обеспечение, либо встроенных функций для родительского контроля. Но это не значит, что вариантов и вовсе нет. Вот 5 способов блокировки сайтов и ограничения времени экрана в GNU/Linux, доступных для вас.

1. Ограничить время экрана с elementary OS


Большинство настольных систем GNU/Linux не поставляются с программным обеспечением для родительского контроля, но это не значит, что ни один из них этого не делает. Один из наиболее популярных дистрибутивов является исключением из правила: elementary OS.

Вы можете найти родительский контроль в приложении «Настройки системы». Там вы можете ограничить использование компьютера определенным временем суток. Вы также можете назначить больше использования компьютера в выходные дни, чем в будние дни.


elementary OS требует, чтобы вы создали отдельную учетную запись для ваших детей. Если на вашем компьютере есть приложения, которые вы не хотите, чтобы они использовали, вы можете заблокировать их. Вы также можете заблокировать доступ к определенным веб-сайтам.

Чтобы изменить настройки родительского контроля или установить дополнительные приложения, ваши дети должны будут знать пароль, связанный с учетной записью администратора (которая, вероятно, ваша). Пока они не знают и не угадывают ваш пароль, вы можете быть спокойны.

2. Установите расширения в Firefox или Chrome


Расширения веб-браузера для родительского контроля, которые работают в Windows и macOS, также работают в Linux. Mozilla Firefox предустанавливается на многие рабочие столы GNU/Linux, а Google Chrome легко загружается.

Хотя расширения предлагают, пожалуй, самый простой способ начать фильтрацию веб-контента, они также очень ограничены. Ребенок может обойти любые ограничения, установленные в Google Chrome, установив другой браузер. Плюс надстройки легко отключить.

Даже если ваш ребенок еще не имеет большого опыта работы с компьютером, компьютерные фильтры могут ускорить процесс. В конце концов, мы тоже многому научились, пытаясь обойти ограничения. Ребенок может быстро узнать, как отключить расширение и снова включить его, когда закончит работу.

3. Изменить файл Hosts для блокировки веб-сайтов

Сайт эффективно заблокирован, если у вашего ребенка нет доступа к вашему паролю администратора.

Хотя для редактирования файла hosts требуется больше технических знаний, чем для настройки расширений веб-браузера, это все равно влияет только на ваш компьютер. В то время, когда смартфоны, планшеты и другие компьютеры часто валяются по дому. Плюс, опять же, черные списки не могут заблокировать весь нежелательный контент в Интернете.

Но следующий вариант, устраняет оба этих недостатка.

4. Фильтруйте веб-контент с помощью OpenDNS


Сервис предлагает несколько вариантов фильтрации. «Низкая» настройка попытки отфильтровать порнографию, в то время как «высокая» настройка также блокирует социальные сети, сайты обмена видео, а также незаконную деятельность. Вы также можете заблокировать сайты, на которых попросту тратится много времени.

Вы можете просмотреть различные варианты и найти руководства по настройке на веб-сайте OpenDNS. В настройке, этот процесс более сложен технически, что может снизить вероятность того, что ваши дети найдут способ отменить ограничения.

Тем не менее, остается один простой и очевидный обходной путь. OpenDNS не делает ничего, чтобы блокировать контент, поступающий через сотовую сеть. Если у вашего ребенка есть смартфон с тарифным планом передачи данных, он все равно может получить доступ ко всей сети, если вы не установите родительский контроль на своем мобильном устройстве. Хотя, если у них ограниченный объем данных, это может снизить их активность выхода в сеть.

5. Мониторинг использования с StaffCounter и KidLogger

Может быть, вы пришли к выводу, что попытка заблокировать нежелательные сайты просто не стоит усилий, но вы не готовы доверять своему ребенку, чтобы перемещаться по Интернету без присмотра. Рекомендуется не пускать компьютеры в спальню и ограничивать детей рабочим столом в общественных местах дома.

Но даже если вы выросли без компьютера дома, вы, вероятно, узнали на работе, как быстро свернуть то, что вы делаете, когда приходит начальник.

Поэтому, если вы не хотите, чтобы ваши окна были свернуты, вы можете получать журнал каждого сайта, который посещает ваш ребенок. KidLogger может сделать это, а также сообщать имена каждого активного окна, отслеживать, какие приложения работают, и делать скриншоты каждые несколько минут.

KidLogger не предоставляет приложения для GNU/Linux, но служба работает с помощью программы StaffCounter, инструмента, который используется для наблюдения за работой сотрудников. Вы можете найти описание того, как это сделать, в блоге KidLogger.

Стоит ли вообще использовать программное обеспечение для родительского контроля?

Настройка программное обеспечение для родительского контроля может потребовать определённых усилий. Для начала, сеть обширна, и новые сайты появляются постоянно. Мало того, что технически невозможно разработать систему, которая может блокировать весь неприемлемый контент, но многие родители не согласны с тем, что считается неприемлемым!

Даже если вам удастся найти или обучить фильтр, который делает то, что вы хотите, и настроить родительский контроль, который ваш ребенок не может обойти, вы, возможно, проделали всю эту работу, чтобы обнаружить, что вы в итоге получили лишь обиду вашего ребенка. В конце концов, никакое техническое решение не может служить заменой обучения вашего ребенка тому, как ответственно пользоваться Интернетом.

Читайте также: