7 Ограничение программной среды
7.1 Введение
Средства ограничения программной среды предоставляют возможности установки программного обеспечения доверенным образом; применения типовых наборов различных программных конфигураций; управления запуском программного обеспечения, в том числе определения запускаемых программ, настройки параметров запуска и контроля за их запуском; реагирования на попытки запуска, произведенные в нарушение установленных правил, а также другие возможности.
7.2 Включение программ в автозагрузку
Утилита chkconfig
позволяет включать программы в автозагрузку с
целью их автоматического запуска при старте операционной системы.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Опция |
Значение |
---|---|
|
Определяет уровни, на которых соответствующая программа должна выполняться.
Уровни указываются на месте параметра |
|
Если утилита запущена в системе, использующей утилиту |
|
Добавляет новую службу для управления утилитой |
|
Удаляет службу, имя которой указывается на месте параметра |
|
Производит переопределение настроек службы, имя которой указывается на месте параметра |
|
Выводит все службы, доступные для |
7.3 Управление системными службами
Утилита systemctl
позволяет управлять системными службами.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Опция |
Значение |
---|---|
|
Указывает на тип так называемого юнита (службы, сокета, устройства и т.п.). Может быть в виде списка наименований типов, разделенных запятой, если требуется указать более, чем на один тип. |
|
При выведении списка юнитов вывести абсолютно все загруженные юниты вне зависимости от их статуса, включая те из них, которые являются неактивными. |
|
Запускает работу сервиса с указанным именем. |
|
Останавливает работу сервиса с указанным именем. |
|
Перезагружает конфигурацию сервиса с указанным именем. |
|
Перезапускает сервис с указанным именем. |
|
Перезапускает сервис с указанным именем, если данный сервис уже работает на момент запуска утилиты. |
|
Перезагрузить конфигурацию сервиса с указанным именем, если сервис поддерживает такую команду, или выполнить перезапуск службы. Если на момент запуска утилиты указанная служба не была запущена, то она запустится после успешного выполнения команды. |
|
Перезагрузить конфигурацию сервиса с указанным именем, если сервис поддерживает такую команду, или выполнить перезапуск службы. Если на момент запуска утилиты указанная служба не была запущена, то указанная команда не произведет никаких действий. |
|
Осуществить принудительную остановку работы службы с указанным именем. |
|
Осуществляет проверку, активна ли на момент запуска утилиты служба с указанным именем. Если служба активна, или хотя бы одна из служб, переданных в качестве аргумента данной команде, активна (в случае, если были переданы наименования более, чем одной службы), выведется нулевое значение. В противном случае — ненулевое. |
|
Проверяет, были ли проблемы при запуске указанной службы или служб. Если хотя бы у одной из служб возникали проблемы, будет выведено нулевое значение. |
|
Добавляет указанный сервис (или их множество) в автозапуск. |
|
Убирает указанный сервис (или их множество) из автозапуска. |
|
Проверяет, находится ли указанная служба (или службы, в случае, если в качестве аргумента был передан список наименований) в автозапуске. Если хотя бы одна из указанных служб находится в автозапуске, будет выведено нулевое значение. |
|
Вывести информацию о версии утилиты. |
|
Вывести справочную информацию об утилите. |
Пример: проверим статус сервера печати.
Для этого выполним следующую команду:
[root@msvsphere ~]# systemctl status cups
cups.service - CUPS Printing Service
Loaded: loaded (/usr/lib/systemd/system/cups.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Пример: разрешим автоматический запуск сервера печати CUPS при загрузке системы.
Для этого выполним следующую команду:
[root@msvsphere ~]# systemctl enable cups
Created symlink from /etc/systemd/system/multi-user.target.wants/cups.service to /usr/lib/systemd/system/cups.service.
Created symlink from /etc/systemd/system/printer.target.wants/cups.service to /usr/lib/systemd/system/cups.service.
Created symlink from /etc/systemd/system/sockets.target.wants/cups.service to /usr/lib/systemd/system/cups.socket.
Created symlink from /etc/systemd/system/multi-user.target.wants/cups.path to /usr/lib/systemd/system/cups.path.
7.4 Настройка запуска программ по расписанию
Утилита crontab
позволяет настраивать запуск программ по расписанию.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Опция |
Значение |
---|---|
|
Указывает пользователя, чье расписание должно редактироваться. |
|
Вывод текущего файла расписания. |
|
Удаление текущего файла расписания. |
|
Редактирование файла расписания. |
Таблица расписания состоит из шести колонок, разделяемых пробелами или
символами табуляции. Первые пять колонок задают время выполнения
(минута, час, день, месяц, день недели). В них может находиться число, список чисел,
разделённых запятыми, диапазон чисел, разделённых дефисом, символы *
или /
. После
полей времени указывается пользователь, от которого запускается программа. Все остальные
символы в строке интерпретируются как выполняемая программа с её параметрами.
Пример: установим с помощью утилиты crontab
ограничения на доступ к системе по времени, с 10:28 до 10:30. Команда passwd -l user2
блокирует
возможность авторизации, дописывая символ восклицательного знака к строке пароля в
файле /etc/shadow
. Команда passwd -u user2
производит обратную операцию, снимая тем
самым блокировку. Заполним файл расписания и выполним команду service crond restart
:
[root@msvsphere user]# crontab -e
crontab: Installing new crontab
[root@msvsphere user]# service crond restart
Redirecting to /bin/systemctl restart crond.service
[root@msvsphere user]# crontab -l
28 10 * * * /usr/bin/passwd -l user2
30 10 * * * /usr/bin/passwd -u user2
[root@msvsphere user]#
7.5 Управление программными пакетами
Утилита rpm
позволяет управлять так называемыми программными пакетами, т.е.
управлять их установкой, обновлением, проверкой и удалением.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Опция |
Значение |
---|---|
|
Установка нового пакета. |
|
Установка или обновление уже установленного пакета до новой версии. При этом после установки пакета все другие версии удаляются. |
|
Обновление пакета, но только если предыдущая версия уже установлена. |
|
Не выполнять проверку зависимостей перед установкой или обновлением пакета. |
|
Не предлагать пакет(ы) для разрешения отсутствующих зависимостей. |
|
Не выполнять переупорядочивание пакетов для установки. Список пакетов обычно переупорядочивается для удовлетворения зависимостей. |
|
Разрешает обновить или заменить пакет более старой версией. |
|
Установить пакеты, даже если они заменяют файлы от других установленных пакетов. |
|
Установить пакеты, даже если они уже установлены в систему. |
|
Устанавливать файлы с документацией. |
|
Не устанавливать файлы с документацией. |
|
Удалить заданный пакет. |
|
Удалить все версии пакета. |
|
Не проверять зависимости перед удалением пакетов. |
|
Выполнить только проверку установки пакета. |
|
Вывести информацию о пакете. |
|
Выполняет запрос ко всем установленным пакетам. |
|
Вывести информацию об изменениях в пакете. |
|
Вывести список файлов в пакете. |
|
Вывести функциональность, предоставляемую пакетом. |
|
Вывести пакеты, от которых зависит этот пакет. |
|
Выполнить проверку метаданных пакета и его контрольной суммы. |
|
Вывести номер версии утилиты. |
|
Вывести справку об использовании утилиты. |
7.6 Установка последней версии пакета/группы пакетов
Утилита dnf
используется для установки последней версии пакета или группы
пакетов с учетом существующих зависимостей.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Опция |
Значение |
---|---|
|
Используется для установки последней версии пакета с учетом существующих зависимостей. |
|
Используется для переустановки пакета с идентичной версией. |
|
Используется для обновления всех пакетов в системе. |
|
Используется для загрузки пакета из репозитория. |
|
Используется для понижения версии пакета с версии, установленной на данный момент, до предыдущей самой высокой версии или указанной версии. |
|
Используется для удаления указанных пакетов из системы, а также для удаления пакетов, зависящих от удаляемых пакетов. |
|
Используется для вывода описаний и общей информации о доступных пакетах. |
|
Используется для поиска пакетов. |
|
Используется для вывода различной информации о доступных пакетах. |
|
Используется для вывода списка всех репозиториев. |
|
Используется для удаления различных данных, накапливающихся со временем в кэше утилиты. |
|
Используется для вывода истории использования утилиты. |
|
Используется для установки последней версии всех пакетов из группы с учетом существующих зависимостей. |
|
Используется для обновления всех пакетов из группы. |
|
Используется для удаления всех пакетов из группы. |
|
Используется для вывода списка пакетов, относящихся к группе. |
|
Используется для вывода списка пакетов, входящих в группу. |
|
Используется, чтобы выяснить, какой пакет предоставляет тот или иной файл. |
|
Вывести зависимости неустановленного пакета. |
|
Вывести список пакетов, которые необходимы для удовлетворения зависимостей. |
|
Запустить с большим количеством отладочной информации. |
|
Устанавливает уровень отладки. |
|
Вывести справку и выйти. |