Работа с управлением учетными записями пользователей#
Управление учетными записями и группами с помощью инструментов командной строки#
Каждому пользователю присваивается уникальный числовой идентификационный номер, называемый идентификатором пользователя (UID). Аналогично каждая группа связана с идентификатором группы (GID). Пользователь, создающий файл, также является владельцем и владельцем группы этого файла. Файлу назначаются отдельные разрешения на чтение, запись и выполнение для владельца, группы и всех остальных. Права доступа могут быть изменены как пользователем с административными полномочиями, так и владельцем файла.
SberLinux OS резервирует идентификаторы пользователей и групп ниже 1000 для системных пользователей и групп. По умолчанию Диспетчер пользователей не отображает системных пользователей. Зарезервированные идентификаторы пользователей и групп документируются в пакете установки. Чтобы просмотреть документацию, используйте эту команду:
cat /usr/share/doc/setup*/uidgid
Рекомендуемая практика - назначать идентификаторы, начинающиеся с 5000, которые еще не были зарезервированы, поскольку зарезервированный диапазон может увеличиться в будущем. Чтобы идентификаторы, назначаемые новым пользователям по умолчанию, начинались с 5000, измените директивы UID_MIN и GID_MIN в файле: /etc/login.defs, как представлено на примере:
[file contents truncated]
UID_MIN 5000
[file contents truncated]
GID_MIN 5000 >[file contents truncated]
Важно
Для пользователей, созданных до изменения UID_MIN и GID_MIN директив, идентификаторы UID по-прежнему будут начинаться со значения по умолчанию 1000. Даже с новыми идентификаторами пользователей и групп, начинающимися с 5000, рекомендуется не повышать зарезервированные системой идентификаторы выше 1000, чтобы избежать конфликта с системами, которые сохраняют ограничение в 1000.
Список всех групп хранится в конфигурационный файл /etc/group.
Теневые пароли#
В средах с несколькими пользователями очень важно использовать теневые пароли, предоставляемые пакетом shadow-utils, для повышения безопасности системных файлов аутентификации. По этой причине программа установки по умолчанию включает теневые пароли.
Ниже приведен список преимуществ теневых паролей по сравнению с традиционным способом хранения паролей в системах на базе UNIX:
Теневые пароли повышают безопасность системы, перемещая зашифрованные хеши паролей из общедоступного файла
/etc/passwdв файл/etc/shadow, доступный для чтения только пользователю с административными полномочиями (например,root).Теневые пароли хранят информацию о старении пароля.
Теневые пароли позволяют применять некоторые политики безопасности, установленные в файле
/etc/login.defs.
Большинство утилит, предоставляемых пакетом shadow-utils, работают должным образом независимо от того, включены или нет теневые пароли. Но поскольку информация о старении пароля хранится исключительно в файле /etc/shadow, некоторые утилиты и команды не будут работать без предварительного включения теневых паролей:
Утилита
chageдля настройки параметров старения пароля.Утилита
gpasswdдля администрирования файла/etc/group.Команда
usermodс параметром-e,--expiredateили-f,--inactive.Команда
useraddс параметром-e,--expiredateили-f,--inactive.
Добавление новых учетных записей с помощью командной строки#
Чтобы добавить нового пользователя в систему, зайдите как пользователь с административными полномочиями и введите следующее в командной строке:
useradd options username
Где options - это параметры командной строки.
По умолчанию команда useradd создает заблокированную учетную запись пользователя. Чтобы разблокировать учетную запись, выполните следующую команду как пользователь с административными полномочиями, чтобы назначить пароль:
passwd username
Добавление новой группы пользователей с помощью командной строки#
Чтобы добавить новую группу в систему, введите следующее в командной строке как пользователь с административными полномочиями:
groupadd options group_name
Где options - это параметры командной строки.
Добавление существующего пользователя в существующую группу#
Используйте утилиту usermod для добавления уже существующего пользователя в уже существующую группу.
Различные варианты usermod оказывают различное влияние на основную группу пользователя и на его или ее дополнительные группы.
Чтобы переопределить основную группу пользователя, выполните следующую команду как пользователь с административными полномочиями:
usermod -g group_name
Чтобы переопределить дополнительные группы пользователя, выполните следующую команду как пользователь с административными полномочиями:
usermod -G group_name1,group_name2,... user_name
Обратите внимание, что в этом случае все предыдущие дополнительные группы пользователя заменяются новой группой или несколькими новыми группами.
Чтобы добавить одну или несколько групп в дополнительные группы пользователя, выполните одну из следующих команд как пользователь с административными полномочиями:
usermod -aG group_name1,group_name2,... user_name
Или:
usermod --append -G group_name1,group_name2,... user_name
Внимание
Обратите внимание, что в этом случае новая группа добавляется к текущим дополнительным группам пользователя
Введение в управление учетными записями пользователей и групп#
Контроль пользователей и групп является ключевым элементом системного администрирования SberLinux. Каждый пользователь SberLinux имеет отдельные учетные данные для входа и может быть назначен различным группам для настройки их системных привилегий.
Настройка зарезервированных идентификаторов пользователей и групп#
Можно найти зарезервированные идентификаторы пользователей и групп в пакете setup. Чтобы просмотреть зарезервированные идентификаторы пользователей и групп, используйте:
cat /usr/share/doc/setup*/uidgid
Рекомендуется назначать идентификаторы новым пользователям и группам, начиная с 5000, так как зарезервированный диапазон может увеличиться в будущем.
Чтобы идентификаторы, назначаемые новым пользователям, по умолчанию начинались с 5000, измените параметры UID_MIN и GID_MIN в файле /etc/login.defs.
Сценарий#
Чтобы идентификаторы, назначаемые новым пользователям, по умолчанию начинались с 5000:
Откройте файл
/etc/login.defsв редакторе по выбору.Найдите строки, которые определяют минимальное значение для автоматического выбора идентификатора пользователя.
# Min/max values for automatic uid selection in useradd # UID_MIN 1000Измените значение UID_MIN, чтобы оно начиналось с
5000.# Min/max values for automatic uid selection in useradd # UID_MIN 5000Найдите строки, которые определяют минимальное значение для автоматического выбора GID.
# Min/max values for automatic gid selection in groupadd # GID_MIN 1000Измените значение GID_MIN, чтобы оно начиналось с
5000.# Min/max values for automatic gid selection in groupadd # GID_MIN 1000Динамически назначаемые UID и GID для обычных пользователей начинаются с
5000.
Примечание
Идентификаторы UID и GID пользователей и групп, созданные до изменения значений UID_MIN и GID_MIN, не изменяются. Это позволит новой группе пользователей иметь тот же идентификатор 5000+, что UID и GID.
Частные группы пользователей#
SberLinux использует конфигурацию системы user private group (UPG), что упрощает управление группами UNIX. Личная группа пользователей создается всякий раз, когда в систему добавляется новый пользователь. Частная группа пользователей имеет то же имя, что и пользователь, для которого она была создана, и этот пользователь является единственным членом частной группы пользователей.
UPG упрощают совместную работу над проектом между несколькими пользователями. Кроме того, конфигурация системы UPG позволяет безопасно устанавливать разрешения по умолчанию для вновь созданного файла или каталога, поскольку это позволяет как пользователю, так и группе, в которую входит этот пользователь, вносить изменения в файл или каталог.
Список всех групп хранится в файле конфигурации /etc/group.
Управление пользователями из командной строки#
Создание каталога группы#
В соответствии с конфигурацией системы UPG можно применить разрешение set-group identification (setgid) к каталогу. setgid упрощает управление групповыми проектами, которые совместно используют каталог. Когда это разрешение применяется к каталогу, файлы, созданные в нем, автоматически присваиваются группе, которой принадлежит этот каталог. Любой пользователь, имеющий разрешение на запись и выполнение в этой группе, может создавать, изменять и удалять файлы в каталоге.
В этом разделе описывается, как создавать групповые каталоги, для этого необходимо выполнить следующий сценарий.
Создайте каталог:
mkdir directory-nameЗамените
directory-nameименем необходимого каталога.Создайте группу:
groupadd group-nameЗамените
group-nameна название необходимой группы.Добавьте пользователей в группу:
usermod --append -G group-name usernameЗамените
group-nameна имя необходимой группы, аusername- на имя пользователя.Свяжите пользователя и группу, владеющих каталогом, с группой
group-name:chown :group-name directory-nameЗамените
group-nameименем необходимой группы и заменитеdirectory-nameименем необходимого каталога.Установите разрешения на запись, чтобы разрешить пользователям создавать и изменять файлы и каталоги, и установите setgid, чтобы это разрешение применялось в каталоге с именем каталога:
chmod g+rwxs directory-nameЗамените
directory-nameименем каталога.
Теперь все члены группы group-name могут создавать и редактировать файлы в directory-name. Вновь созданные файлы сохраняют право собственности группы group-name.
Проверка#
Чтобы проверить правильность установленных разрешений, используйте:
ls -ld directory-nameЗамените
directory-nameнеобходимым именем каталога.Пример вывода команды:
drwxrwsr-x. 2 root group-name 6 Nov 25 08:45 directory-name
Редактирование групп пользователей с помощью командной строки#
Пользователь принадлежит к определенному набору групп, которые позволяют логически собирать пользователей с одинаковым доступом к файлам и папкам. Можно редактировать основные и дополнительные группы пользователей из командной строки, чтобы изменить права доступа пользователя.
Основные и дополнительные группы пользователей#
Группа - это организация, которая объединяет несколько учетных записей пользователей для общей цели, такой как предоставление доступа к определенным файлам.
В Linux группы пользователей могут выступать в качестве основных или дополнительных. Основные и дополнительные группы обладают следующими свойствами:
Первичная группа:
У каждого пользователя всегда есть только одна основная группа.
Можно изменить основную группу пользователя.
Дополнительные группы:
Можно добавить существующего пользователя в существующую дополнительную группу, чтобы управлять пользователями с теми же правами безопасности и доступа внутри группы.
Пользователи могут быть членами нулевой или нескольких дополнительных групп.
Список основных и дополнительных групп пользователя#
Можно составить список групп пользователей, чтобы узнать, к каким основным и дополнительным группам они принадлежат. Для этого используйте:
groups user-name
Замените user-name именем пользователя. Если не укажете имя пользователя, команда отобразит членство в группе для текущего пользователя. Первая группа - это основная группа, за которой следуют необязательные дополнительные группы.
В качестве примера выведите список групп для пользователя arina:
groups arina
Пример вывода команды:
arina : arina wheel developer
Пользователь arina имеет основную группу arina и является членом дополнительных групп wheel и developer.
Удаление пользователя из дополнительной группы#
Можно удалить существующего пользователя из дополнительной группы, чтобы ограничить его права доступа или доступ к файлам и устройствам, с помощью команды:
gpasswd -d user-name group-name
Замените user-name именем пользователя и group-name именем дополнительной группы.
В качестве примера удалите пользователя из дополнительной группы.
Если пользователь arina имеет основную группу arina2 и принадлежит к дополнительным группам wheel и developers, и нужно удалить этого пользователя из группы developers, используйте:
gpasswd -d arina developers
Убедитесь, что пользователь arina удален из дополнительной группы developers:
groups arina
Пример вывода команды:
arina : arina2 wheel
Управление доступом sudo#
Пользователи с административными полномочиями могут предоставлять доступ sudo, чтобы разрешить пользователям без административных полномочий выполнять административные команды.
Авторизация пользователей в sudoers#
Файл /etc/sudoers указывает, какие пользователи могут запускать команды с помощью sudo. Правила могут применяться как к отдельным пользователям, так и к группам пользователей. Также можно использовать псевдонимы, чтобы упростить определение правил для групп хостов, команд и даже пользователей. Псевдонимы по умолчанию определены в первой части файла /etc/sudoers.
Когда пользователь пытается использовать sudo для выполнения команды, которая не разрешена в файле /etc/sudoers, система записывает содержащееся сообщение журнала username : user NOT in sudoers.
Файл /etc/sudoers по умолчанию содержит информацию и примеры авторизации. Активируйте конкретное примерное правило, удалив символ комментария # из начала строки. Раздел авторизации, относящийся к пользователю, отмечен следующим введением:
## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
Можно использовать следующий формат для создания новых sudoers и изменять существующие авторизации:
username hostname=path/to/command
Где:
username- это имя пользователя или группы, например,user1или%group1;hostname- это имя хоста, к которому применяется правило;path/to/command- это полный абсолютный путь к команде. Можно ограничить пользователя выполнением команды только с определенными параметрами и аргументами, добавив эти параметры после пути к команде. Если не указано никаких параметров, пользователь может использовать команду со всеми параметрами.
Можно заменить любую из этих переменных на ALL, чтобы применить правило ко всем пользователям, хостам или командам.
Важно
С правилами, снимающими любые ограничения, такими как ALL ALL=(ALL) ALL, все пользователи могут запускать все команды. Это может привести к угрозам безопасности.
Можно указать аргументы отрицательно, используя команду !. Например, !root указывает всех пользователей, кроме пользователя с именем root. Обратите внимание, что использование списков разрешений для разрешения определенных пользователей, групп и команд более безопасно, чем использование списков блокировки для запрета определенных пользователей, групп и команд. Используя списки разрешений, блокируйте новых неавторизованных пользователей или группы.
Важно
Избегайте использования отрицательных правил для команд, поскольку пользователи могут обойти такие правила, переименовав команды с помощью alias.
Система считывает файл /etc/sudoers от начала до конца. Поэтому, если файл содержит несколько записей для пользователя, записи применяются по порядку. В случае конфликтующих значений система использует последнее совпадение, даже если это не самое конкретное совпадение.
Предпочтительный способ добавления новых правил sudoers - это создание новых файлов в каталоге /etc/sudoers.d/ вместо ввода правил непосредственно в файл /etc/sudoers. Это связано с тем, что содержимое этого каталога сохраняется во время обновления системы. Кроме того, легче исправить любые ошибки в отдельных файлах, чем в файле /etc/sudoers. Система считывает файлы в каталоге /etc/sudoers.d, когда доходит до следующей строки в файле /etc/sudoers:
#includedir /etc/sudoers.d
Обратите внимание, что номерной знак # в начале этой строки является частью синтаксиса и не означает, что строка является комментарием. Имена файлов в этом каталоге не должны содержать . (точки) и не должны заканчиваться ~ (тильдой).
Предоставление доступа sudo-пользователю#
Пользователи с административными полномочиями могут предоставлять доступ sudo, позволяющий пользователям без административных полномочий выполнять административные команды. Команда sudo предоставляет пользователям административные полномочия без использования пароля.
Когда пользователям необходимо выполнить административную команду, они могут это сделать с помощью команды sudo.
Существуют следующие ограничения:
Только пользователи, перечисленные в конфигурационном файле
/etc/sudoers, могут использовать командуsudo.Команда выполняется в командной строке пользователя.
Процедура:
Как пользователь с административными полномочиями, откройте файл
/etc/sudoers:visudoФайл
/etc/sudoersопределяет политики, применяемые командойsudo.В файле
/etc/sudoersнайдите строки, которые предоставляют доступsudo-пользователям в административной группеwheel.## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALLУбедитесь, что строка, начинающаяся с
\%wheel, не имеет перед собой символа комментария#.Сохраните все изменения и выйдите из редактора.
Добавьте пользователей, которым нужно предоставить доступ
sudo, в административную группуwheel.Замените
usernameна имя пользователя и выполните:usermod --append -G wheel usernameУбедитесь, что пользователь добавлен в административную группу
wheel:id usernameПример вывода команды:
uid=5000(username) gid=5000(_username) groups=5000(username),10(wheel)
Разрешение пользователям без административных полномочий запускать определенные команды#
Можно настроить политику, которая позволяет пользователю без административных полномочий запускать определенную команду на определенной рабочей станции. Чтобы настроить эту политику, необходимо создать и отредактировать файл в sudoers.d.
Как пользователь с административными полномочиями, создайте новый каталог
sudoers.d:mkdir -p /etc/sudoers.d/Создайте новый файл в каталоге
/etc/sudoers.d:visudo -f /etc/sudoers.d/file-nameЗамените
file-nameименем файла, который нужно создать. Файл откроется автоматически.Добавьте следующую строку во вновь созданный файл:
username hostname = /path/to/the/commandЗамените
usernameна имя пользователя.Замените
hostnameименем хоста.Замените
/path/to/the/commandна абсолютный путь к команде (например, на/usr/bin/dnf).Сохраните все изменения и выйдите из редактора.
Пример предоставления пользователю без административных полномочий возможности устанавливать программы с помощью dnf#
Чтобы разрешить пользователю arina устанавливать программы на рабочую станцию localhost.localdomain с помощью утилиты dnf с привилегиями sudo, используйте следующий сценарий:
Как пользователь с административными полномочиями, создайте новый каталог
sudoers.dв/etc/:mkdir -p /etc/sudoers.d/Создайте новый файл в каталоге
/etc/sudoers.d:visudo -f /etc/sudoers.d/arinaФайл откроется автоматически.
Добавьте файл
/etc/sudoers.d/arinaв следующую строку:arina localhost.localdomain = /usr/bin/yumУбедитесь, что два пути к командам разделены
,(запятой), за которой следует пробел.При необходимости, чтобы получать уведомления по электронной почте каждый раз, когда пользователь
arinaпытается использовать привилегииsudo, добавьте в файл следующие строки:Defaults mail_always Defaults mailto="email@domain.ru"Чтобы проверить, может ли пользователь
arinaвыполнить командуdnfс привилегиямиsudo, переключите учетную запись:su arina -Введите команду
sudo dnf:sudo dnf [sudo] password for arina:Введите пароль
sudoдля пользователяarina. Система отобразит список командdnfи разделов (опций):... usage: dnf [options] COMMAND ...Если получено сообщение
arina is not in the sudoers file. This incident will be reported., значит настройка была выполнена неправильно.
Управление правами доступа к файлам#
Права доступа к файлам определяют способность учетных записей пользователей и групп просматривать, изменять, получать доступ и выполнять содержимое файлов и каталогов.
Каждый файл или каталог имеет три уровня владения:
Пользователь-владелец (
u).Владелец группы (
g).Другие (
o).
Каждому уровню владения могут быть назначены следующие разрешения:
Чтение (
r).Запись (
w).Выполнение (
x).
Обратите внимание, что разрешение на выполнение для файла позволяет выполнить этот файл. Разрешение на выполнение для каталога позволяет получить доступ к содержимому каталога, но не выполнить его.
Когда создается новый файл или каталог, ему автоматически назначается набор разрешений по умолчанию. Разрешения по умолчанию для файла или каталога зависят от двух факторов:
Базовое разрешение.
Маска режима создания пользовательского файла (
umask).
Базовые права доступа к файлам#
Разрешение |
Символьное значение |
Восьмеричное значение |
|---|---|---|
Отсутствие разрешения |
|
|
Выполнение |
|
|
Запись |
|
|
Запись и выполнение |
|
|
Чтение |
|
|
Чтение и выполнение |
|
|
Чтение и запись |
|
|
Чтение, запись, выполнение |
|
|
Базовым разрешением для каталога является 777 (drwxrwxrwx), которое предоставляет всем разрешения на чтение, запись и выполнение. Это означает, что владелец каталога, группа и другие пользователи могут просматривать содержимое каталога, создавать, удалять и редактировать элементы внутри каталога, а также переходить в него.
Обратите внимание, что отдельные файлы в каталоге могут иметь свои собственные разрешения, которые могут помешать редактировать их, несмотря на неограниченный доступ к каталогу.
Базовым разрешением для файла является 666 (-rw-rw-rw-), оно предоставляет всем права на чтение и запись. Это означает, что владелец файла, группа и другие пользователи могут читать и редактировать файл.
Пример разрешения файла:
ls -l
-rwxrw----. 1 sysadmins sysadmins 2 Mar 2 08:43 file
Где:
-(одинарное тире) указывает, что это файл.rwxуказывает, что владелец файла имеет разрешения на чтение, запись и выполнение файла.rw-указывает, что группа имеет разрешения на чтение и запись, но не на выполнение файла.---указывает, что другие пользователи не имеют прав на чтение, запись или выполнение файла..(точка) указывает, что для файла задан контекст безопасности SELinux.
Пример разрешения каталога:
ls -dl directory
drwxr-----. 1 sysadmins sysadmins 2 Mar 2 08:43 directory
Где:
dуказывает, что это каталог.rwxуказывает, что владелец каталога имеет разрешения на чтение, запись и доступ к содержимому каталога.Владельцу каталога может перечислять элементы (файлы, подкаталоги) внутри каталога, получать доступ к содержимому этих элементов и изменять их.
r--указывает, что группа имеет разрешения на чтение, но не на запись или доступ к содержимому каталога.Член группы, которой принадлежит каталог, может перечислить элементы внутри каталога. Без получения доступа к информации об элементах в каталоге или возможности их изменить.
---указывает, что другие пользователи не имеют прав на чтение, запись или доступ к содержимому каталога.Лицо, не являющееся владельцем пользователя или группы каталога, не может перечислять элементы в каталоге, получать доступ к информации об этих элементах или изменять их.
.(точка) указывает, что для каталога установлен контекст безопасности SELinux.
Примечание
Базовое разрешение, которое автоматически назначается файлу или каталогу, и не является разрешением по умолчанию в конце файла или каталога. Когда создается файл или каталог, базовое разрешение изменяется с помощью umask. Комбинация базового разрешения и umask создает разрешение по умолчанию для файлов и каталогов.
Маска пользовательского режима создания файлов#
Маска режима создания пользовательского файла (umask) - переменная, управляющая тем, как устанавливаются права доступа к файлам для вновь созданных файлов и каталогов. umask автоматически удаляет разрешения из базового значения разрешений, чтобы повысить общую безопасность системы Linux. Маска создания файла (umask) может быть установлена с использованием восьмеричной или символической записи.
umask для обычного пользователя это 0002. Значение по умолчанию umask для пользователя с административными полномочиями (например, root) - 0022.
Первая цифра в umask представляет специальные разрешения (sticky bit). Последние три цифры umask представляют разрешения, которые удалены у пользователя-владельца (u), владелец группы (g), и другие (o) соответственно.
Права доступа к файлам по умолчанию#
Числа по умолчанию устанавливаются автоматически для всех вновь создаваемых файлов и каталогов. Значение разрешений по умолчанию определяется путем применения umask к базовому разрешению.
Числовое обозначение |
Символьное обозначение |
Описание |
|---|---|---|
|
|
Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены |
|
|
Все пользователи могут читать файл. Владелец может изменять файл |
|
|
Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены |
|
|
Все могут читать файл. Владелец и группа могут изменять |
|
|
Все могут читать и изменять файл |
|
|
Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены |
|
|
Все могут читать файл. Владелец может также изменять и запускать файл |
|
|
Все могут читать и запускать файл. Владелец может также изменять файл |
|
|
Все пользователи могут читать, изменять и записывать файл |
Когда пользователь без административных полномочий создает новый каталог, для umask устанавливается значение 002 (rwxrwxr-x), а для базовых разрешений созданного каталога устанавливается значение 777 (rwxrwxrwx). Каталог получает разрешения по умолчанию и для 775(drwxrwxr-x). Полученные в результате этого разрешения представлены в таблице ниже.
Параметр |
Символьное значение |
Восьмеричное значение |
|---|---|---|
Базовое разрешение |
|
|
|
|
|
Разрешение по умолчанию |
|
|
Это означает, что владелец каталога и группа могут перечислять содержимое каталога, создавать, удалять и редактировать элементы внутри каталога, а также переходить в него. Все остальные пользователи могут только перечислить содержимое каталога и перейти в него.
По соображениям безопасности обычные файлы не могут иметь разрешение на выполнение по умолчанию, даже если для umask установлено значение 000(rwxrwxrwx). Однако каталоги могут быть созданы с разрешениями на выполнение.
Изменение прав доступа к файлам с использованием символьных значений#
Можно использовать утилиту chmod с символьными значениями (комбинация букв и знаков) для изменения прав доступа для файла или каталога.
Можно назначить следующие разрешения:
Чтение (
r);Запись (
w);Выполнение (
x).
Разрешения могут быть назначены следующим уровням владения:
Пользователь-владелец (
u);Владелец группы (
g);Другое (
o);Все (
а).
Чтобы добавить или удалить разрешения, используйте следующие знаки:
+(знак плюс) - чтобы добавить разрешения поверх существующих разрешений;-(знак минус) - чтобы удалить разрешения из существующего разрешения;=(знак равно) - чтобы удалить существующие разрешения и явно определить новые.
Чтобы изменить разрешения для файла или каталога, используйте:
chmod <level><operation><permission> file-nameЗамените
<level>на уровень владения, для которого нужно установить разрешения. Замените<operation>на один из знаков. Замените<permission>на разрешения, которые нужно назначить. Заменитеfile-nameименем файла или каталога. Например, чтобы предоставить всем права на чтение, запись и выполнение (rwx), используйте командуchmod a=rwx my-script.sh.
Проверка#
Для проверки изменились ли права доступа к файлам с использованием символьных значений, выполните следующие действия.
Чтобы просмотреть разрешения для определенного файла, используйте:
ls -l file-nameЗамените
file-nameименем файла.Чтобы просмотреть разрешения для определенного каталога, используйте:
ls -dl directory-nameЗамените
directory-nameименем каталога.Чтобы просмотреть разрешения для всех файлов в определенном каталоге, используйте:
ls -l directory-nameЗамените
directory-nameименем каталога.
Изменение разрешений для файлов и каталогов#
Чтобы изменить права доступа к файлам my-file.txt от -rw-rw-r-- до -rw------, используйте:
Отобразите текущие разрешения для
my-file.txt:ls -l my-file.txt -rw-rw-r--. 1 username username 0 Feb 24 17:56 my-file.txtУдалите разрешения на чтение, запись и выполнение (
rwx) файла у владельца группы (g) и других пользователей (o):chmod перейти= my-file.txtОбратите внимание, что любое разрешение, которое не указано после знака равенства (
=), автоматически запрещается.Убедитесь, что разрешения для
my-file.txtбыли установлены правильно:ls -l my-file.txt -rw-------. 1 username username 0 Feb 24 17:56 my-file.txt
Чтобы изменить права доступа к файлам my-directory от drwxrwx--- до drwxrwxr-x, используйте:
Отобразите текущие разрешения для
my-directory:ls -dl my-directory drwxrwx---. 2 username username 4096 Feb 24 18:12 my-directoryДобавьте доступ на чтение и выполнение для всех пользователей:
chmod o+rx my-directoryУбедитесь, что разрешения для
my-directoryи его содержимое были установлены правильно:ls -dl my-directory drwxrwxr-x. 2 username username 4096 Feb 24 18:12 my-directory
Изменение прав доступа к файлам с помощью восьмеричных значений#
Можно использовать утилиту chmod с восьмеричными значениями (числами) для изменения прав доступа к файлам для файла или каталога.
Чтобы изменить права доступа к файлам для существующего файла или каталога, используйте:
chmod octal_value file-name
Замените file-name именем файла или каталога. Замените octal_value на восьмеричное значение.
Управление umask#
Можно использовать утилиту umask для отображения, установки или изменения текущего значения umask или значения по умолчанию.
Отображение текущего значения umask#
Можно использовать umask для отображения текущего значения umask в символьном или восьмеричном режиме.
Чтобы отобразить текущее значение
umaskв символьном режиме, используйте:umask -SЧтобы отобразить текущее значение
umaskв восьмеричном режиме, используйте:umask
Примечание
При отображении umask в восьмеричном режиме он отображается в виде четырехзначного числа (0002 или 0022). Первая цифра umask представляет специальный бит (sticky bit, SGID bit, SUID bit). Если первая цифра установлена равной 0, специальный бит не устанавливается.
Отображение umask bash по умолчанию#
Существует несколько оболочек, которые можно использовать, например bash, ksh, zsh и tcsh. Эти оболочки могут вести себя как оболочки для входа в систему или без входа в систему. Можно вызвать оболочку входа в систему, открыв собственный терминал.
Чтобы определить, выполняется ли команда в командной оболочке для входа или без входа, используйте команду echo $0.
Если на выходе команда
echo $0возвращаетbash, команда выполняется в оболочке без входа в систему.echo $0 bashumaskдля оболочки без входа в систему устанавливается в конфигурационный файл/etc/bashrc.Если на выходе команда
echo $0возвращает-bash, команда выполняется в оболочке входа в систему.echo $0 -bashumaskдля оболочки входа в систему устанавливается в конфигурационный файлetc/profile.Для отображения значения
bash umaskпо умолчанию для оболочки без входа в систему используйте:grep umask /etc/bashrcРезультат:
# By default, we want umask to get set. This sets it for non-login shell. umask 002 umask 022Чтобы отобразить
bash umaskпо умолчанию для оболочки входа в систему, используйте:grep umask /etc/profileРезультат:
# By default, we want umask to get set. This sets it for login shell umask 002 umask 022
Установка umask с использованием символьных значений#
Чтобы установить umask для текущего сеанса командной строки, используйте:
umask -S <level><operation><permission>
Замените <level> на уровень владения, для которого нужно установить umask. Замените <operation> на один из знаков. Замените <permission> на разрешения, которые нужно назначить. Например, чтобы установить значение umask u=rwx, g=rwx, o=rwx, используйте umask -S a=rwx.
Примечание
Действителен только для текущего сеанса командной строки.
Установка umask с использованием восьмеричных значений#
Чтобы установить umask для текущего сеанса командной строки, используйте:
octal_value
Примечание
umask действителен только для текущего сеанса командной строки.
Изменение umask по умолчанию для оболочки без входа в систему#
Можно изменить значение по умолчанию bash umask для пользователей без административных полномочий путем изменения /etc/bashrc.
Как пользователь с административными полномочиями, откройте файл
/etc/bashrcв редакторе.Измените следующие разделы, чтобы изменить
bash umaskпо умолчанию:if [ $UID -gt 199 ] && [ "id -gn" = "id -un" ]; then umask 002 else umask 022 fiЗамените восьмеричное значение
umask(002) по умолчанию другим восьмеричным значением.Сохраните изменения и выйдите из редактора.
Изменение umask по умолчанию для оболочки входа в систему#
Можно изменить значение по умолчанию bash umask для пользователя с административными полномочиями, отредактировав /etc/profile.
Как пользователь с административными полномочиями, откройте файл
/etc/profileв редакторе.Измените следующие разделы, чтобы изменить
bash umaskпо умолчанию:if [ $UID -gt 199 ] && [ "/usr/bin/id -gn" = "/usr/bin/id -un" ]; then umask 002 else umask 022 fiЗамените восьмеричное значение
umask(022) по умолчанию другим восьмеричным значением.Сохраните изменения и выйдите из редактора.
Изменение umask по умолчанию для конкретного пользователя#
Можно изменить umask по умолчанию для конкретного пользователя, изменив .bashrc для этого пользователя.
Добавьте строку, указывающую восьмеричное значение
umask, в файл.bashrcдля конкретного пользователя.echo 'umask octal_value' >> /home/username/.bashrcЗамените
octal_valueна восьмеричное значение и заменитеusernameименем пользователя.
Установка разрешений по умолчанию для вновь созданных домашних каталогов#
Можно изменить режимы разрешений для домашних каталогов вновь созданных пользователей, изменив файл /etc/login.defs.
Процедура:
Как пользователь с административными полномочиями, откройте файл
/etc/login.defsв редакторе.Измените следующий раздел, чтобы установить новый режим
HOME_MODE:# HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new # home directories. # If HOME_MODE is not set, the value of UMASK is used to create the mode. HOME_MODE 0700Замените восьмеричное значение по умолчанию (
0700) другим восьмеричным значением. Выбранный режим будет использоваться для создания разрешений для домашнего каталога.Если установлен параметр
HOME_MODE, сохраните изменения и выйдите из редактора.Если параметр
HOME_MODEне задан, изменитеUMASK, чтобы установить режим для вновь созданных домашних каталогов:# Default initial "umask" value used by login(1) on non-PAM enabled systems. # Default "umask" value for pam_umask(8) on PAM enabled systems. # UMASK is also used by useradd(8) and newusers(8) to set the mode for new # home directories if HOME_MODE is not set. # 022 is the default value, but 027, or even 077, could be considered # for increased privacy. There is no One True Answer here: each sysadmin # must make up their mind. UMASK 022Замените восьмеричное значение по умолчанию (
022) другим восьмеричным значением.Сохраните изменения и выйдите из редактора.
Управление списком контроля доступа#
У каждого файла и каталога может быть только один пользователь-владелец и один владелец группы одновременно. Если нужно предоставить пользователю разрешения на доступ к определенным файлам или каталогам, которые принадлежат другому пользователю или группе, сохраняя при этом другие файлы и каталоги закрытыми, можно использовать списки управления доступом Linux (ACL).
Отображение текущего списка контроля доступа#
Можно использовать утилиту getfacl для отображения текущего списка управления доступом.
Чтобы отобразить текущий список управления доступом для определенного файла или каталога, используйте:
getfacl file-nameЗамените
file-nameименем файла или каталога.
Настройка списка контроля доступа#
Можно использовать утилиту setfacl для установки ACL для файла или каталога.
Чтобы задать список управления доступом для файла или каталога, используйте:
setfacl -m u:username: symbolic_valuefile-nameЗамените
usernameс указанием имени пользователя,symbolic_valueс символическим значением иfile-nameс именем файла или каталога.
Изменение разрешений для группового проекта#
В следующем примере описывается, как изменить разрешения для файла group-project, принадлежащего пользователю с административными полномочиями root, который состоит в группе root, чтобы этот файл был:
Никем не исполняемым.
Пользователь
mikhailимел бы разрешенияrw-.У пользователя
arinaбыли бы соответствующие разрешения---.У других пользователей были бы соответствующие разрешения
r--.
setfacl -m u:mikhail:rw- group-project
setfacl -m u:arina:--- group-project
Проверка#
Чтобы убедиться, что у пользователя mikhail есть разрешение rw-, у пользователя arina есть разрешение --- и у других пользователей есть разрешение r--, используйте:
getfacl group-project
Пример вывода команды:
# file: group-project
# owner: root
# group: root user:mikhail:rw- user:arina:--- group::r-- mask::rw- other::r--
FreeIPA#
FreeIPA – это инструмент для создания среды, позволяющей централизованно управлять аутентификацией пользователей, устанавливать политики доступа и аудита.
Основные возможности FreeIPA:
Идентификация – управление пользователями и клиентскими узлами с помощью CLI или веб-интерфейса, настройка единого каталога пользователей и групп для всех служб систем и приложений.
Аутентификация – проверка аутентификационных токенов (паролей, OTP) пользователей и клиентских узлов с помощью единой службы аутентификации для всех служб систем и приложений.
Политики безопасности – возможность определения политик аутентификации и авторизации.
Управление службами – возможность организации единого пространства пользователей: каталогов пользователей, точного времени, доменных имен, управления сертификатами и доменом Kerberos.
Доверие – возможность настройки доверия с другими системами управления идентификацией.
Репликация – возможность масштабирования и повышения отказоустойчивости с помощью репликации и синхронизации данных для всех ее подсистем (каталога пользователей, данных службы точного времени, службы доменных имен, службы управления сертификатами) между отдельными экземплярами FreeIPA.
Сервер FreeIPA#
Системные требования к серверу#
Для установки сервера FreeIPA требуется система без каких-либо пользовательских настроек служб: DNS, Kerberos, Apache и Directory Server. В процессе настройки домена, FreeIPA перезапишет системные файлы и создаст их резервные копии в директории /var/lib/ipa/sysrestore/. После удаления сервера FreeIPA эти файлы будут восстановлены.
Требования к оперативной памяти (RAM):
Минимальные:
для установки с центром сертификации (CA) – 1,2 ГБ;
для тестового или демонстрационного использования – 2 ГБ.
Рекомендованные для использования в промышленных средах:
для 10 000 пользователей и 100 групп – не менее 4 ГБ RAM и 4 ГБ виртуальной памяти (Swap);
для 100 000 пользователей и 50 000 групп – 16 ГБ оперативной памяти и 4 ГБ Swap.
Для DNS необходима правильно настроенная конфигурация, без этого не будут корректно работать инструменты: DNS, Kerberos, SSL.
Внимание
После установки домен DNS изменить будет нельзя.
Так как к конфигурации предъявляются определенные требования, установщик FreeIPA осуществляет следующие проверки:
Имя узла:
не должно быть
localhostилиlocalhost6;должно быть полным (от имени узла до корня дерева доменных имен, например,
company_name.ipa.test).
Обратный адрес должен совпадать с именем узла.
Важно
Не используйте существующие домены, если не являетесь их администратором. Для тестирования рекомендованы зарезервированные имена DNS верхнего уровня, например, test или example.
Список IP-портов, которые использует FreeIPA:
Служба |
IP-порт |
Протокол |
|---|---|---|
HTTP |
80 |
TCP |
HTTPS |
443 |
TCP |
LDAP |
389 |
TCP |
LDAPS |
636 |
TCP |
Kerberos |
88, 464 |
TCP, UDP |
DNS |
53 |
TCP, UDP |
NTP |
123 |
UDP |
Предварительные настройки#
Подготовительные действия:
Задайте серверу полное доменное имя (FQDN), используя команду:
hostnamectl set-hostname <full-domain-name>где
<full-domain-name>- полное доменное имя сервера.Внимание
После изменения имени сервера могут перестать работать некоторые приложения. Это можно решить перезагрузкой системы. IP-адрес сервера не должен изменяться.
Настройте в межсетевом экране (firewall) доступ FreeIPA для остальных хостов:
sudo firewall-cmd --permanent --add-service={http,https,ldap,ldaps,dns,ntp,kerberos}sudo firewall-cmd --reloadУстановите пакет:
dnf install ipa
Установка сервера FreeIPA со встроенным DNS и с центром сертификации#
У сервера FreeIPA со встроенным DNS существует ряд преимуществ:
Автоматизация управления и обслуживания записей DNS (например, записи DNS SRV могут создаваться в процессе установки, а потом автоматически обновляться).
Стабильное соединение с интернетом, благодаря настройке глобальных серверов пересылки во время установки FreeIPA. Они также полезны для установления доверительных отношений с Active Directory.
Настройка обратной зоны DNS для предотвращения блокировки электронных писем из используемого домена почтовыми серверами за пределами домена FreeIPA.
Важно
Учтите, что DNS-сервер в составе FreeIPA не подходит для использования в качестве общего DNS-сервера. Некоторые расширенные функции DNS могут быть недоступны.
Интерактивная установка#
Шаги установки:
Запустите установку в интерактивном режиме командой:
ipa-server-installПоявится вопрос о необходимости настройки DNS-сервера:
BIND Do you want to configure integrated DNS (BIND)? [no]: yes. Введитеyes.Задайте имя сервера:
Server host name [ipa.example.test]:. Нажмите Enter, чтобы принять значение по умолчанию ([ipa.example.test]) или введите имя.Задайте доменное имя:
Please confirm the domain name [example.test]:. Нажмите Enter, чтобы принять значение по умолчанию ([example.test]) или введите имя.Задайте имя для пространства Kerberos:
Please provide a realm name [EXAMPLE.TEST]:. Нажмите Enter, чтобы принять значение по умолчанию ([EXAMPLE.TEST]) или введите имя.Задайте пароль для учетной записи Directory Manager (Менеджер каталога):
Directory Manager password:. Введите пароль повторно для подтверждения:Password (confirm):.Задайте пароль для администратора FreeIPA:
IPA admin password:. Подтвердите пароль:Password (confirm):.Настройте DNS-сервер, ответив на следующие вопросы:
Если необходимо настроить перенаправление DNS:
Do you want to configure DNS forwarders? [yes]. Введитеyes.Если в настройках сети уже прописаны DNS-серверы, то установщик предложит использовать их:
Do you want to configure these servers as DNS forwarders? [yes].[Необязательно]. Если необходимо использовать внешний сервер DNS, то его IP можно задать ответом на вопрос:
Enter an IP address for a DNS forwarder, or press Enter to skip:.Если необходимо изменить значение для поиска обратных зон (в случае использования внешнего DNS-сервера), задайте его ответом на вопрос:
Do you want to search for missing reverse zones? [yes]. В данном сценарии установки рекомендуется оставить значение по умолчанию.
Укажите имя NetBIOS в ответ на запрос
NetBIOS domain name [EXAMPLE]:.[Необязательно]. Укажите NTP-сервер или пул серверов в ответ на вопрос
Do you want to configure OPENNTPD with NTP server or pool address? [no]:.Проверьте информацию о конфигурации, которую выведет система, и подтвердите ее:
Continue to configure the system with these values? [no]: yes. Введитеyes.
Далее запустится процесс конфигурации, по завершении которого будет выведено сообщение со статусом установки и перечнем дальнейших шагов:
==============================================================================
Setup complete
Next steps:
1. You must make sure these network ports are open:
TCP Ports:
* 80, 443: HTTP/HTTPS
* 389, 636: LDAP/LDAPS
* 88, 464: kerberos
* 53: bind
UDP Ports:
* 88, 464: kerberos
* 53: bind
* 123: ntp
2. You can now obtain a kerberos ticket using the command: 'kinit admin'
This ticket will allow you to use the IPA tools (e.g., ipa user-add)
and the web user interface.
Be sure to back up the CA certificates stored in /root/cacert.p12
These files are required to create replicas. The password for these
files is the Directory Manager password
The ipa-server-install command was successful
Установка в пакетном режиме#
Установка сервера FreeIPA в пакетном режиме представляет собой запуск скрипта установки с добавлением дополнительных параметров.
Пример:
ipa-server-install -U --hostname="$(hostname)" -r EXAMPLE.TEST -n example.test -p "12345678" -a "12345678" --setup-dns --no-forwarders --no--reverse
В зависимости от выбора установки требуется различный набор параметров.
В примере указаны следующие параметры
-U,--unattended– разрешение установить параметры по умолчанию, без запроса информации, как в интерактивном режиме.--hostname=HOST_NAME— полное DNS-имя сервера, на котором производится установка.-r REALM_NAME,--realm="REALM_NAME– имя Kerberos области для сервера FreeIPA.-n DOMAIN_NAME,--domain="DOMAIN_NAME- доменное имя.-p DM_PASSWORD,--ds-password="DM_PASSWORD– пароль пользователя Directory Manager, который будет использоваться сервером каталогов.-a ADMIN_PASSWORD,--admin-password=ADMIN_PASSWORD– пароль администратора FreeIPA.
Параметры --setup-dns, --no-forwarders и --no--reverse относятся к установке сервера FreeIPA со встроенным DNS и описаны ниже:
–setup-dns- параметр, сообщающая скрипту установки, что нужно создать зону DNS, если ее еще нет, и настроить DNS-сервер.–forwarder/--no-forwarders- указание, нужно настраивать серверы пересылки DNS или нет.–auto-reverse/--no-reverse- указание, нужно ли автоматически обнаруживать обратные зоны DNS или нет.
Дополнительные параметры, которые используются при установке сервера FreeIPA со встроенным DNS:
–allow-zone-overlap- указание создать зону DNS даже если такое имя уже используется. Это позволяет в любом случае создать зону DNS с указанным именем. Игнорирует возможные ошибки при установке, если имя домена используется где-то еще.–no-dnssec-validation- отключить DNSSEC. Это может потребоваться, если планируется настроить доверительные отношения с Active Directory и настроить сервер пересылки DNS. В этом случае DNSSEC нужно отключить, иначе сервер DNS от FreeIPA будет ждать защищенный ответ от DNS Active Directory.
Примечание
Скрипт установки ipa-server-install создает файл журнала /var/log/ipaserver-install.log. Используйте его для определения проблем при установке, если она завершилась с ошибкой.
Завершение установки#
После завершения установки выполните следующие действия:
Обновите записи DNS:
Добавьте DNS делегирование из родительского домена в домен FreeIPA.
Добавьте запись службы _ntp._udp для сервера времени в DNS. Пример команды:
ipa dnsrecord-add <parent_domain> _ntp._udp --srv-priority=0 --srv-weight=100 --srv-port=123 --srv-target=<freeipa_domain>где
<parent_domain>- родительский домен, а<freeipa_domain>- домен FreeIPA.
Убедитесь, что сервер FreeIPA работает:
Введите команду:
kinit adminВведите пароль.
Выведите список активных подсистем командой
klist
Проверьте статус подсистем FreeIPA. Введите:
ipactl status
Веб-интерфейс FreeIPA будет доступен по адресу https://<full-domain-name>, где <full-domain-name> - полное доменное имя сервера FreeIPA.
Удаление сервера FreeIPA#
Выполните следующие шаги:
Если используется встроенный DNS-сервер, убедитесь, что
ipabackup.<full-domain-name>не является единственным работающим DNS-сервером в топологии. Проверьте это командой:ipa server-role-find --role 'DNS server'Если
ipabackup.<full-domain-name>– единственный работающий DNS-сервер, то добавьте роль DNS-сервера на другой сервер FreeIPA (см man ipa-dns-install (1)).Если используется встроенный CA:
Убедитесь, что
ipabackup.<full-domain-name>не является единственным работающим CA в топологии. Введите команду:ipa server-role-find --role 'CA server'Если
ipabackup.<full-domain-name>– единственный работающий CA, то добавьте роль CA сервера на другой сервер FreeIPA (см man ipa-ca-install (1)).Если были активированы хранилища (enabled vaults), убедитесь, что
ipabackup.<full-domain-name>не является единственным работающим сервером KRA (Key Recovery Authority) в топологии. Введите:ipa server-role-find --role 'KRA server'Если
ipabackup.<full-domain-name>– единственный работающий сервером KRA, то добавьте роль сервера KRA на другой сервер FreeIPA (см man ipa-kra-install (1)).Убедитесь, что
ipabackup.<full-domain-name>не является сервером обновления CA. Введите команду:ipa config-show | grep 'CA renewal'Если
ipabackup.<full-domain-name>– сервер обновления CA, переместите роль сервера обновления CA на другой сервер.Убедитесь, что
ipabackup.<full-domain-name>не является издателем текущего списка отзывов сертификатов (CRL). Введите команду:ipa-crlgen-manage statusЕсли
ipabackup.<full-domain-name>– сервер, генерирующий CRL, переместите роль издателя на другой сервер.
Подключитесь к другому серверу в топологии. Введите:
ssh ipa_user@<another_server>где
<another_server>- полное доменное имя другого сервера.Получите учетные данные администратора FreeIPA командой:
kinit adminУдалите сервер
ipabackup.<full-domain-name>из топологии командой:ipa server-del ipabackup.example.testВернитесь на
ipabackup.<full-domain-name>и удалите FreeIPA командой:ipa-server-install --uninstallНа вопрос
Are you sure you want to continue with the uninstall procedure? [no]:введитеyes.Убедитесь, что все записи DNS-сервера, указывающие на
ipabackup.<full-domain-name>, удалены из зон DNS.
Интерфейс командной строки FreeIPA#
Важно
Перед началом работы убедитесь, что получен билет Kerberos для администратора FreeIPA с помощью команды kinit admin.
Команды, приведенные в разделе, не требуют ввода от имени пользователя с административными полномочиями.
Большинство действий, необходимых для администрирования, можно выполнить с использованием команды ipa.
Для получения перечня доступных команд введите:
ipa help commands
Команды сгруппированы по типу объекта. Например, для объекта automember (правило автоучастия) команды в выводе ipa help commands будут сгруппированы так:
automember-add Добавить правило автоучастия.
automember-add-condition Добавить условия в правило автоучастия.
automember-default-group-remove Удалить группу по умолчанию (резервную) для всех несоответствующих записей.
Аналогично для других объектов.
Чтобы получить информацию по конкретному объекту, введите:
ipa help <type_object>
где <type_object> – это название объекта.
Для получения справки по конкретной команду введите:
ipa <command> --help
или:
ipa help <command>
где <command> – название команды.
Для поиска конкретных типов записей FreeIPA используйте команды ipa *-find. Например, для получения информации обо всех пользователях введите ipa user-find, а для вывода информации по всем группам, в названии или описании которых есть слово admin – ipa group-find admin.
Для получения перечня всех доступных команд ipa *-find введите:
ipa help commands | grep find
Для получения подробной информации о конкретной записи можно с помощью команд ipa *-show, использование которых строится по аналогии с командами ipa *-find.
Удаление файлов конфигурации неудачной установки сервера FreeIPA#
Если установка сервера FreeIPA закончилась с ошибкой, некоторые файлы конфигурации могут быть уже настроены. Повторная установка не решит эту проблему, так как установщик FreeIPA сообщит, что сервер уже настроен.
Для решения проблемы удалите частичную конфигурацию сервера FreeIPA командой:
ipa-server-install --uninstall
Затем повторите процесс установки.
Отладочную информацию можно посмотреть в следующих файлах журнала системы:
/var/log/ipaserver-install.log;/var/log/httpd/error_log;/var/log/dirsrv/slapd-INSTANCE-NAME/access;/var/log/dirsrv/slapd-INSTANCE-NAME/errors.
При установке центра сертификации (CA):
/var/log/pki/pki-ca-spawn.$TIME_OF_INSTALLATION.log;journalctl -u pki-tomcatd@pki-tomcat;/var/log/pki/pki-tomcat/ca/debug.$DATE.log;/var/log/pki/pki-tomcat/ca/signedAudit/ca_audit;/var/log/pki/pki-tomcat/ca/system,/var/log/pki/pki-tomcat/ca/transactions,/var/log/pki/pki-tomcat/catalina.$DATE.log.
Если проблема не решится, то переустановите ОС.
Клиент FreeIPA#
Предварительные настройки для клиента FreeIPA#
Подготовительные действия:
Задайте имя хоста командой:
hostnamectl set-hostname <hostname>где
<hostname>- имя хоста.Для настройки DNS-сервера создайте файл
/etc/net/ifaces/eth0/resolv.confи запишите туда имя сервера FreeIPA с помощью команды:echo "nameserver n.n.n.n" > /etc/net/ifaces/eth0/resolv.confгде
n.n.n.n– IP адрес сервера FreeIPA.Настройте службу resolvconf на использование DNS FreeIPA и укажите домен для поиска посредством изменения файла
/etc/resolvconf.conf:echo "interface_order=lo lo[0-9]*. lo.* <interface>" >> /etc/resolvconf.confecho "search_domains=<domain-name>" >> /etc/resolvconf.confгде
<interface>- интерфейс, на котором доступен сервер FreeIPA, а<domain-name>- домен FreeIPA.Обновите DNS адреса командой:
resolvconf -uВажно
Если в результате настроек IP-адрес доменного DNS сервера не отображается в файле
/etc/resolv.conf, перезагрузите систему.Установите необходимые пакеты:
dnf install ipa-client zipНастройте подключение к серверу FreeIPA:
Зарегистрируйте систему, настраиваемую как клиент FreeIPA, в домене FreeIPA и настройте разрешения для использования сервисов FreeIPA.
Предоставьте учетные данные для установки и регистрации клиента. Доступные методы аутентификации включают привилегированные пользовательские данные (параметр по умолчанию), одноразовый пароль (OTP) и ключ (keytab) из предыдущей регистрации.
Установка клиента FreeIPA в интерактивном режиме#
Шаги установки:
Запустите скрипт установки клиента командой:
ipa-client-install --mkhomedirЕсли сервер FreeIPA, на котором будет зарегистрирован клиент, установлен со встроенным DNS или DNS-сервер в сети принимает обновления записей по протоколу GSS-TSIG, можно использовать параметр
--enable-dns-updates, чтобы обновить записи DNS с помощью IP-адреса клиентской системы.Проверьте конфигурацию системы, когда установщик клиента выведет информацию, и подтвердите ее в ответ на вопрос
Continue to configure the system with these values? [no]:(введитеyes).Введите имя администратора сервера FreeIPA и его пароль в ответ на запрос установщика.
После настройки клиента, при успешном завершении установки, появится сообщение The ipa-client-install command was successful.
Установка клиента FreeIPA в интерактивном режиме c использованием одноразового пароля#
Шаги установки:
Добавьте будущую клиентскую систему на сервере FreeIPA с помощью команды:
ipa host-add <client-hostname> --random --ip-address=n.n.n.nгде
<client-hostname> – имя хоста клиента, аn.n.n.n– IP-адрес сервера FreeIPA. Параметр--randomиспользуется для создания случайного одноразового пароля.Запустите
ipa-client-installсо следующими параметрами:ipa-client-install --mkhomedir --password='<password-value>'где с помощью параметра
--passwordуказан одноразовый случайный пароль (укажите значение пароля в<password-value>).Важно
После регистрации клиента в домене FreeIPA пароль станет недействительным. Он будет заменен таблицей ключей узла.
Установка клиента FreeIPA в пакетном режиме#
Для установки клиента FreeIPA в пакетном режиме необходимо передать установщику информацию, необходимую для настройки, с помощью дополнительных параметров. Минимально необходимая информация: имя и пароль администратора FreeIPA.
Пример запуска установки в пакетном режиме с минимально достаточной информацией для настройки:
ipa-client-install -U -p <freeipa-admin-name> -w <password-value>
где используются следующие обязательные параметры:
-p PRINCIPAL,--principal=PRINCIPAL– имя администратора FreeIPA;-w PASSWORD,--password=PASSWORD– пароль администратора FreeIPA;--unattended,-U– разрешение установить параметры по умолчанию, без запроса информации в интерактивном режиме.
Если записи SRV в зоне DNS FreeIPA установлены правильно, то все остальные требуемые значения скрипт настройки обнаружит автоматически. Если не сможет, то укажите их с помощью дополнительных параметров:
--hostname=HOST_NAME– полное доменное имя клиентского хоста;--realm=REALM_NAME– имя области Kerberos для сервера FreeIPA;--domain=DOMAIN_NAME– доменное имя;--server=SERVER– полное доменное имя сервера FreeIPA.
Пример запуска установки в пакетном режиме с дополнительными параметрами:
ipa-client-install -U --password='3SeOaJ5GyOxbPcLmF5wpFQH' --domain example.test --server ipa.example.test --realm EXAMPLE.TEST --mkhomedir
Для получения полного перечня доступных параметров введите:
ipa-client-install --help
Проверка и отладка клиента FreeIPA#
Для проверки того, может ли клиент FreeIPA получать информацию о пользователях, зарегистрированных на сервере FreeIPA, используйте команду:
id admin
Отладочная информация при установке клиента FreeIPA добавляется в файл /var/log/ipaclient-install.log. Для поиска записей, связанных с ошибками установки, необходимо отфильтровать строки с пометкой ScriptError.
Удаление клиента FreeIPA#
Клиент удаляется из домена FreeIPA вместе с конфигурацией системных служб FreeIPA, таких как демон SSSD (System Security Services Daemon).
Для удаления клиента FreeIPA выполните следующие действия:
На клиенте:
введите команду:
ipa-client-install --uninstallудалите старые принципалы Kerberos, кроме
/etc/krb5.keytab:ipa-rmkeytab -k /path/to/keytab -r <freeipa-domain-name>где
<freeipa-domain-name>– домен FreeIPA.
На сервере:
удалите все записи DNS для хоста клиента командой:
ipa dnsrecord-delудалите запись хоста клиента с сервера FreeIPA LDAP с помощью команды:
ipa host-del <hostname>где
<hostname>– имя хоста клиента.
Важно
При удалении записи хоста клиента с сервера FreeIPA LDAP также будут удалены все службы и отозваны все сертификаты, выданные для этого хоста.
Репликация в FreeIPA#
Новую реплику в FreeIPA можно установить:
на существующем клиенте FreeIPA, который преобразуется в реплику;
на машине (узле), которая еще незарегистрирована в домене FreeIPA.
Для установки реплики используется утилита ipa-replica-install.
Важно
Одновременная установка нескольких реплик не поддерживается. Устанавливайте каждую реплику поочередно.
Предварительные условия#
Для реплики установите те же пакеты, что и при установке сервера (см раздел «Сервер FreeIPA» –> «Предварительные настройки»).
При установке реплики доступны следующие способы авторизации:
Для существующего клиента FreeIPA: включение узла, на котором установлен клиент, в группу
ipaservers. Это предоставит узлу привилегии аналогичные учетным данным администратора FreeIPA.Для незарегистрированной системы: использование учетных данных администратора FreeIPA: перед запуском утилиты
ipa-replica-installполучите билет Kerberos для администратора FreeIPA командойkinit adminлибо передайте имя и пароль администратора утилите с помощью параметров--principalи--admin-passwordили по запросу в интерактивном режиме.
Установка реплики на существующем клиенте FreeIPA c использованием Host Keytab#
Важно
Перед установкой повысьте клиента FreeIPA до реплики с использованием собственной таблицы Host Keytab. Для этого, перед установкой, создайте обратный адрес для реплики на DNS-сервере сервера FreeIPA. Данный способ авторизации считается более безопасным, так как учетные данные администратора не отображаются в консоли при установке.
Шаги установки:
На любом узле FreeIPA:
Получите билет Kerberos командой:
kinit adminДобавьте узел клиента (будущей реплики) в группу узлов
ipaservers:ipa hostgroup-add-member ipaservers --hosts <replica-host-name>где
<replica-host-name>– имя хоста реплики.
На клиентском узле запустите утилиту установки реплики:
ipa-replica-install
Установка реплики в системе, незарегистрированной в домене FreeIPA#
Перед установкой реплики в незарегистрированной системе настройте узел на использование DNS-сервера, который был сконфигурирован на сервере FreeIPA аналогично настройкам при установке клиента FreeIPA (см. раздел «Предварительные настройки для клиента FreeIPA»).
Установка с использованием случайного пароля#
Примечание
Данный способ авторизации считается более безопасным, так как учетные данные администратора не отображаются в консоли при установке.
Шаги установки:
На любом узле FreeIPA:
Получите билет Kerberos командой:
kinit adminДобавьте новый узел в домен FreeIPA (сгенерированный случайный пароль будет использоваться для последующей установки реплики):
ipa host-add <hostname> --random --ip-address=<ip-adress>где
<hostname>и<ip-adress>– имя и IP-адрес незарегистрированной системы.Добавьте систему в группу узлов
ipaservers:ipa hostgroup-add-member ipaservers --hosts <hostname>где
<hostname>– имя незарегистрированной системы.
На реплике запустите утилиту установки реплики, указав сгенерированный пароль в параметре
--password:ipa-replica-install --password '<password-value>'где
<password-value>– значение пароля из шага 1.Важно
Пароль часто содержит специальные символы, поэтому следует заключать его в одинарные кавычки.
Если требуется установить реплику с интегрированными DNS и CA, это можно сделать, например, такой командой:
ipa-replica-install --password '<password-value>' --setup-ca --setup-dns --forwarder <ip-adress> --forwarder <ip-adress>
где <ip-adress> - IP-адреса серверов пересылки DNS.
Установка с использованием учетных данных администратора FreeIPA#
Важно
Перед установкой реплики необходимо убедиться, что при установке сервера FreeIPA, была создана обратная зона DNS и реверсивная запись для основного сервера.
Шаги установки:
В обратной зоне создайте реверсивную запись для реплики командой:
ipa dnsrecord-add <reverse-zone-domane-name> 145 --ptr-rec '<replica-domain-name>'где
<reverse-zone-domane-name>и<replica-domain-name>– доменные имена обратной зоны и реплики.На реплике запустите установку командой:
ipa-replica-install --principal <freeipa-admin-name> --admin-password <password-value>где
<freeipa-admin-name>и<password-value>– учетные данные администратора FreeIPA (по умолчанию имя администратораadmin).Если необходимо установить реплику с DNS и CA, введите:
ipa-replica-install --principal <freeipa-admin-name> --admin-password **12345678** --setup-ca --setup-dns --forwarder <ip-adress> --forwarder <ip-adress>
Проверка и отладка реплики#
Для проверки реплики:
Создайте тестового пользователя:
ipa user-add <username>где
<username>- имя создаваемого пользователя.Убедитесь, что пользователь виден на другом узле с помощью команды:
ipa user-show <username>
Если при установке реплики на клиенте с использованием Host Keytab возникают ошибки, связанные с проверкой соединений, то перезапустите службу dbus командой:
systemctl reload dbus
Удаление реплики#
Удаление реплики из топологии кластера производится аналогично удалению сервера администратором FreeIPA. Инструкции приведены в разделе «Удаление сервера FreeIPA».
Журналирование FreeIPA#
Файлы и каталоги журналов сервера, клиента и реплики FreeIPA:
Файл/каталог |
Описание |
|---|---|
|
Журнал установки сервера FreeIPA |
|
Журнал установки клиента FreeIPA |
|
Журнал установки реплики FreeIPA |
|
Файлы журналов службы SSSD (подробное журналирование можно включить в файле |
|
Политики ротации файлов журналов для служб DNS, SSSD, Apache, Tomcat и Kerberos |
|
Ссылка на конфигурацию ведения журнала CA (по умолчанию ссылка на файл |
Файлы и каталоги журналов сервера каталогов (Directory Service):
Файл/каталог |
Описание |
|---|---|
|
Журнал, связанный с экземпляром Directory Service, используемым сервером FreeIPA. Основная часть журналируемых данных относится к взаимодействиям сервера и реплики |
|
Журнал аудита всех операций Directory Service, если аудит включен в конфигурации Directory Service |
|
Журнал, содержащий подробную информацию о попытках доступа к экземпляру Directory Service домена |
|
Журнал, содержащий подробную информацию о неудачных операциях для экземпляра Directory Service домена |
Файлы и каталоги журналов веб-сервера Apache:
Файл/каталог |
Описание |
|---|---|
|
Каталог журналов веб-сервера Apache |
|
Стандартный журнал доступа веб-сервера Apache. Сообщения, специфичные для FreeIPA, записываются вместе с сообщениями Apache, поскольку веб-интерфейс FreeIPA и интерфейс командной строки используют Apache. В журналах доступа в основном регистрируются только субъект-пользователь и используемый URI, который часто является конечной точкой RPC |
|
Стандартный журнал ошибок веб-сервера Apache. Журнал ошибок содержит журналы сервера FreeIPA |
Файлы и каталоги журналов системы сертификатов FreeIPA:
Файл/каталог |
Описание |
|---|---|
|
Журнал установки CA FreeIPA |
|
Журнал установки центра восстановления ключей FreeIPA (KRA) |
|
Каталог верхнего уровня для журналов операций PKI. Содержит журналы CA и KRA |
|
Каталог с журналами, связанными с операциями над сертификатами. В FreeIPA эти журналы используются для субъектов-служб, узлов и других объектов, использующих сертификаты |
|
Каталог с журналами, относящимися к KRA. |
Сообщения об ошибках сертификата также добавляются в системный журнал.
Файлы журналов Kerberos:
Файл/каталог |
Описание |
|---|---|
|
Основной файл журнала для сервера Kerberos KDC |
|
Основной файл журнала сервера администрирования Kerberos |
Расположение этих файлов настраивается в файле /etc/krb5.conf.
Сообщения об ошибках DNS добавляются в системный журнал.