Инструменты пользователя

Инструменты сайта


linux_system_configure

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
linux_system_configure [2016/01/18 05:23]
sander [Идентификация и аутентификация пользователей]
linux_system_configure [2016/01/18 06:17] (текущий)
sander [Идентификация и аутентификация пользователей]
Строка 1: Строка 1:
 +====== Конфигурация системы:​ журнал,​ системное время, пакетные задания и пользователи ======
 +===== Структура каталога /etc =====
 +Большинство файлов конфигурации Linux располагается в каталоге /etc. Исторически сложилось так, что для каждого приложения здесь один или несколько файлов конфигурации.
 +===== Системный журнал =====
 +Большинство системных приложений передает свой диагностический вывод в службу syslog. Традиционный демон syslogd ожидает сообщения и в зависимости от типа полученного сообщения направляет вывод в файл, на экран, пользователям или в виде какой-либо комбинации перечисленного,​ но может и игнорировать сообщение.
 +==== Файлы конфигурации ====
 +<WRAP center round info 80%>
 +Основным файлом конфигурации службы rsyslogd является /​etc/​rsyslog.conf,​ но некоторые настройки вы обнаружите также в других каталогах,​ например /​etc/​rsyslog.d.
 +</​WRAP>​
  
 +Традиционное правило состоит из селектора и действия,​ которые описывают,​ как перехватывать сообщения журнала и куда их направлять
 +<code bash>
 +#
 +# Logging for the mail system. ​ Split it up so that
 +# it is easy to write scripts to parse these files.
 +#
 +#​mail.info ​                     -/​var/​log/​mail.info
 +#​mail.warn ​                     -/​var/​log/​mail.warn
 +mail.err ​                       /​var/​log/​mail.err
 +</​code>​
 +== Источник и приоритет ==
 +
 +Селектор является шаблоном,​ которому удовлетворяют источник и приоритет сообщений журнала. Источник — это общая категория сообщения (см. полный список источников на странице rsyslog.conf(5) руководства).
 +
 +Приоритет следует после точки (.) за источником. Приоритеты располагаются в таком порядке,​ от низшего к высшему:​ debug, info, notice, warning, err, crit, alert или emerg.
 +
 +== Расширенный синтаксис ==
 +Расширения конфигурации называются директивами и обычно начинаются с символа $.
 +<code bash>
 +#
 +# Where to place spool and state files
 +#
 +$WorkDirectory /​var/​spool/​rsyslog
 +
 +#
 +# Include all config files in /​etc/​rsyslog.d/​
 +#
 +$IncludeConfig /​etc/​rsyslog.d/​*.conf
 +</​code>​
 +== Устранение неполадок ==
 +Один из простейших способов проверить системный регистратор — вручную отправить сообщение журнала с помощью команды logger.
 +<code bash>
 +root@uba64:​logger -p daemon.info something bad just happened
 +root@uba64:/​var/​log#​ tail -n1 /​var/​log/​syslog
 +Jan 18 11:14:00 uba64 titov: something bad just happened
 +</​code>​
 +===== Файлы управления пользователями =====
 +==== Файл /etc/passwd ====
 +**Каждая строка представляет одного пользователя и состоит из семи полей, разделенных двоеточиями. Эти поля таковы.**
 +  * Имя пользователя.
 +  * Зашифрованный пароль пользователя. В большинстве систем Linux пароль в действительности не хранится в файле passwd, а помещается в файл shadow (см. подраздел 7.3.3). Формат файла shadow похож на формат файла passwd, однако у обычных пользователей нет разрешения на чтение файла shadow. Второе поле в файле passwd или shadow является зашифрованным паролем,​ он выглядит как нечитаемый набор символов,​ например d1CVEWiB/​oppc. Пароли в системе Unix никогда не хранятся в виде простого текста.
 +  * Символ x во втором поле файла passwd говорит о том, что зашифрованный пароль хранится в файле shadow. Звездочка (*) сообщает,​ что этот пользователь не можетсовершать вход в систему,​ а если это поле пусто (то есть вы видите два двоеточия подряд,​ ::), то для входа в систему пароля не требуется. Остерегайтесь пустых паролей. Никогда не следует регистрировать пользователя без пароля.
 +  * Идентификатор пользователя (UID), который представляет данного пользователя ядру. Можно создать две записи с одинаковым идентификатором пользователя,​ но это будет сбивать с толку и вас, и ваше программное обеспечение. Старайтесь использовать уникальные идентификаторы.
 +  * Идентификатор группы (GID) представляет собой одну из нумерованных записей в файле /etc/group. Группы задают права доступа к файлам и кое-что еще. Данная группа называется также первичной группой пользователя.
 +  * Реальное имя пользователя (часто называется полем GECOS). В этом поле вы можете встретить запятые,​ которые отделяют номер комнаты и номер телефона.
 +  * Домашний каталог пользователя.
 +  * Оболочка пользователя (команда,​ которая запускается при работе пользователя в терминале).
 +
 +==== Файл /etc/shadow ====
 +Файл паролей shadow (/​etc/​shadow) в системе Linux обычно содержит информацию об аутентификации пользователя,​ включая зашифрованные пароли и сведения об окончании срока действия паролей,​ соответствующих пользователям из файла /​etc/​passwd.
 +==== Управление пользователями и паролями ====
 +По умолчанию команда **passwd** изменяет пароль данного пользователя,​ но можно также указать флаг **-f**, чтобы изменить реальное имя пользователя,​ или флаг **-s**, чтобы изменить оболочку пользователя на одну из перечисленных в файле /​etc/​shells.
 +==== Команды getty и login ====
 +Команда **getty** прикрепляется к терминалам для отображения строки приглашения. В большинстве версий Linux команда getty не усложнена,​ поскольку система использует ее только для входа в виртуальных терминалах.\\
 +
 +После ввода зарегистрированного имени команда **getty** сменится на команду **login**, которая запросит пароль. Если пароль указан верно, команда login сменится с помощью команды exec() на оболочку. В противном случае будет выдано сообщение о некорректном входе в систему.\\
 +
 +===== Настройка времени =====
 +
 +==== Представление времени в ядре и часовые пояса ====
 +<WRAP center round info 80%>
 +Местный часовой пояс настраивается с помощью файла /​etc/​localtime. Не пытайтесь заглянуть в него, поскольку этот файл является двоичным.
 +</​WRAP>​
 +
 +Файлы часовых поясов для вашей системы расположены в каталоге **/​usr/​share/​zoneinfo**. Этот каталог содержит множество файлов часовых поясов и псевдонимов для них. Чтобы настроить часовой пояс вручную,​ скопируйте один из таких файлов из каталога **/​usr/​share/​zoneinfo** в каталог **/​etc/​localtime**,​ или создайте символическую ссылку.
 +
 +==== Сетевое время ====
 +Если ваш компьютер постоянно подключен к сети Интернет,​ можно запустить демон NTP (Network Time Protocol, протокол сетевого времени),​ чтобы настраивать время с помощью удаленного сервера.
 +
 +Если вам необходимо выполнить конфигурацию вручную,​ справочную информацию можно найти на основной странице NTP (http://​www.ntp.org/​),​ но если вы предпочитаете не копаться в документации,​ выполните следующее.
 +  - Отыщите ближайший к вам сервер NTP, узнав его от поставщика интернет-услуг или на странице ntp.org.
 +  - Поместите имя сервера времени в файл /​etc/​ntpd.conf.
 +  - Запустите во время загрузки системы команду ntpdate server.
 +  - После команды ntpdate запустите во время загрузки системы команду ntpd.
 +
 +===== Планирование повторяющихся задач с помощью службы cron =====
 +Служба cron в Unix повторно запускает команды на основе постоянного расписания.
 +<code bash>
 +15 09 * * * /​home/​juser/​bin/​spmake
 +</​code>​
 +Пять разделенных пробелами полей в начале этой строки определяют запланированное время (см. также рис. 7.3). Эти поля обозначают следующее:​
 +
 +  * минута (от 0 до 59). Приведенное выше задание cron настроено на запуск в 15-ю минуту;​
 +  * час (от 0 до 23). Задание настроено на запуск в 9-й час;
 +  * день месяца (от 1 до 31);
 +  * месяц (от 1 до 12);
 +  * день недели (от 0 до 7). Числа 0 и 7 соответствуют воскресенью.
 +
 +===== Планирование единовременных задач с помощью службы at =====
 +
 +Чтобы запустить задание в будущем один раз без помощи службы cron, воспользуйтесь службой **at**. Например,​ чтобы запустить команду myjob в 22:30 вечера,​ введите такую команду:​
 +<code bash>
 +$ at 22:30
 +at> myjob
 +</​code>​
 +Завершите ввод, нажав сочетание клавиш Ctrl+D. Утилита **at** считывает команды из стандартного ввода.\\
 +
 +Чтобы убедиться в том, что задание запланировано,​ используйте команду **atq**. Чтобы его удалить,​ запустите команду **atrm**. Можно также указать день для выполнения задания,​ добавив дату в формате ДД.ММ.ГГ,​ например,​ так: 22:30 30.09.15.
 +
 +===== Идентификаторы пользователей и переключение между пользователями =====
 +
 +Принадлежность процессов,​ **эффективный**,​ **реальный** и **сохраненный** идентификатор пользователя. В действительности каждый процесс снабжен несколькими идентификаторами пользователя. Мы описали **эффективный идентификатор пользователя (euid)**, который определяет права доступа для процесса. Второй идентификатор пользователя,​ **реальный идентификатор пользователя (ruid)**, указывает на инициатора процесса. При запуске setuid-команды система Linux устанавливает для владельца команды значение эффективного идентификатора пользователя во время исполнения,​ но она сохраняет исходный идентификатор в качестве реального идентификатора пользователя.
 +
 +===== Идентификация и аутентификация пользователей =====
 +
 +<WRAP center round info 80%>
 +**Идентификация** отвечает на вопрос,​ что за пользователи перед нами. При **аутентификации** система просит пользователей доказать,​ что они являются теми, кем они себя называют. Наконец,​ **авторизация** используется для определения границ того, что дозволено пользователям.
 +</​WRAP>​
 +
 +===== Стандарт PAM =====
 +PAM (Pluggable Authentication Modules, подключаемые модули аутентификации) — систему совместно используемых библиотек для аутентификации.
 +==== Конфигурация PAM ====
 +
 +Файлы конфигурации PAM обычно можно найти в каталоге **/​etc/​pam.d**
 +<code bash>
 +root@uba64:​~#​ cat /​etc/​pam.d/​chsh
 +#
 +# The PAM configuration file for the Shadow `chsh' service
 +#
 +
 +# This will not allow a user to change their shell unless
 +# their current one is listed in /​etc/​shells. This keeps
 +# accounts with special shells from changing them.
 +auth       ​required ​  ​pam_shells.so
 +
 +# This allows root to change user shell without being
 +# prompted for a password
 +auth            sufficient ​     pam_rootok.so
 +</​code>​
 +
 +Каждая строка конфигурации содержит три поля в таком порядке:​ **тип функции,​ управляющий аргумент и модуль**.
 +
 +  * **Тип функции.** Это функция,​ которую пользовательское приложение просит выполнить утилиту PAM. В данном случае это команда auth, задание аутентификации пользователя.
 +  * **Управляющий аргумент.** Этот параметр контролирует то, что будет делать PAM-приложение после успешного или неудачного завершения действия в данной строке (requisite в этом примере). Скоро мы перейдем к этому.
 +  * **Модуль.** Это модуль аутентификации,​ который запускается для данной строки и определяет,​ что именно делает строка. Здесь модуль pam_shells.so проверяет,​ упоминается ли текущая оболочка пользователя в файле /​etc/​shells.
 +
 +<WRAP center round info 80%>
 +Конфигурация PAM детально описана на странице руководства **pam.conf(5)**.
 +</​WRAP>​
 +
 +=== Типы функций ===
 +
 +Пользовательское приложение может попросить PAM-утилиту выполнить одну из четырех перечисленных ниже функций:​
 +  * **auth** — выполнить аутентификацию пользователя (проверить,​ является ли пользователь тем, кем он себя называет);​
 +  * **account** — проверить статус учетной записи пользователя (авторизован ли, например,​ пользователь на выполнение каких-либо действий);​
 +  * **session** — выполнить что-либо только для текущего сеанса пользователя (например,​ отобразить сообщение дня);
 +  * **password** — изменить пароль пользователя или другую информацию в учетной записи.
 +
 +=== Управляющие аргументы и стек правил ===
 +
 +Существуют два типа управляющих аргументов:​ с простым и более сложным синтаксисом. Приведу три главных управляющих аргумента с простым синтаксисом,​ которые вы можете найти в правиле.\\
 +  * **sufficient**. Если данное правило выполняется успешно,​ аутентификация также проходит успешно и PAM-утилите не нужно проверять следующие правила. Если правило не выполняется,​ утилита PAM переходит к дополнительным правилам.
 +  * **requisite**. Если правило выполняется успешно,​ PAM-утилита переходит к следующим правилам. Если правило не выполняется,​ аутентификация завершается неудачей и PAM-утилите не нужно проверять следующие правила.
 +  * **required**. Если данное правило выполняется успешно,​ PAM-утилита переходит к следующим правилам. Если правило не выполняется,​ PAM-утилита переходит к следующим правилам,​ но всегда вернет отрицательный результат аутентификации,​ вне зависимости от результатов выполнения дополнительных правил.
linux_system_configure.txt · Последние изменения: 2016/01/18 06:17 — sander