Настройка пользователей и групп#
Настройка пользователей#
Пользователь по умолчанию#
По умолчанию в компоненте Базовая ОС (CORE) продукта Platform V SberLinux OS Сore (SLC) (далее - SberLinux OS Сore) создается привилегированный пользователь core без пароля или ssh-ключа. При необходимости использовать пользователя core с паролем или ssh-ключом создайте конфигурацию Ignition, которая включает соответствующие параметры для данного пользователя. Также с помощью конфигураций Ignition можно создать дополнительных пользователей. Подробнее про конфигурацию Ignition см. в документе «Руководство по установке» → «Установка» → «Конфигурация Ignition».
Рекомендуется управлять пользователями с помощью конфигурации Ignition, поскольку она может храниться в репозитории, версионироваться и одна конфигурация может быть использована на многих серверах. Также в конфигурации Ignition можно указать разные параметры для каждого пользователя, например, имя, ssh-ключ, хеш пароля, группы:
passwd:
users:
- name: core
ssh_authorized_keys:
- "ssh-rsa <core_ssh_rsa_key>"
- name: user_1
password_hash: "<password_hash>"
ssh_authorized_keys:
- "ssh-rsa <user_1_ssh_rsa_key>"
create:
groups: [ sudo, group1 ]
Создание новых пользователей#
Создание пользователя с помощью Butane#
Чтобы создать нового пользователя (пользователей), добавьте его в раздел users списка конфигурации Butane. В следующем примере конфигурация создает двух новых пользователей:
variant: sbcos
version: 3.2.0
passwd:
users:
- name: user_1
- name: user_2
Настройте ssh-ключи или пароль, чтобы иметь возможность войти в систему с учетными данными этих пользователей.
Создание пользователя вручную#
Чтобы добавить пользователя вручную, подключитесь к машине по SSH и используйте инструмент useradd. Например, для создания пользователя user_1 с повышенными привилегиями введите команду:
sudo useradd -p "*" -U -m user_1 -G sudo
Где:
"*"— создает пользователя, который не может войти в систему с использованием пароля, но может войти по ssh-ключу;-U— создает новую группу, с таким же именем, как у пользователя;-G— добавляет пользователя в существующую группу с повышенными привилегиямиsudo;-m— создает домашний каталог пользователя.
Чтобы добавить пароль для ранее созданного пользователя user_1, используйте команду:
sudo passwd user_1
Пример вывода команды:
New password:
Re-enter new password:
passwd: password changed.
Чтобы обновить ssh-ключи пользователя user_1, используйте команду:
update-ssh-keys -u user_1 user_1.pem
Предоставление привилегий администратора пользователям#
Предоставление привилегий администратора с помощью sudo#
Добавление пользователя в файл /etc/sudoers позволяет предоставлять настраиваемый доступ к командам и настраивать пользовательские политики безопасности.
Чтобы отредактировать файл, используйте команду visudo. visudo проверяет синтаксис перед фактической перезаписью файла /etc/sudoers. При наличии ошибок файл не будет сохранен. Если файл будет изменяться в обычном текстовом редакторе, синтаксическая ошибка может привести к потере доступа к sudo. Команду следует запускать от имени root, чтобы избежать потери доступа sudo в случае сбоя.
Вместо непосредственного редактирования /etc/sudo.conf можно создать для соответствующего пользователя новый файл в каталоге /etc/sudoers.d/.
При запуске
visudoтребуется указать, какой файл нужно отредактировать, при помощи опции-f. Например, введите команду:visudo -f /etc/sudoers.d/user_1Далее добавьте строку:
user_1 ALL=(ALL) NOPASSWD: ALLУбедитесь, что
sudoбыл предоставлен:su user_1cat /etc/sudoers.d/user_1Пример вывода команды:
cat: /etc/sudoers.d/user_1: Permission deniedБез использования повышения привилегий при помощи
sudoфайл/etc/sudoers.d/user_1не открывается.sudo cat /etc/sudoers.d/user_1user_1 ALL=(ALL) NOPASSWD: ALL
Предоставление привилегий администратора с помощью Butane#
Самый простой способ предоставить пользователям административные привилегии — добавить их в группы sudo и wheel как часть конфигурации Butane.
variant: sbcos
version: 3.2.0
passwd:
groups:
- name: engineering
- name: marketing
gid: 9000
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
- name: user_1
groups:
- engineering
- wheel
- sudo
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
- sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
- name: user_2
groups:
- marketing
- wheel
- sudo
password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...
Примечание
Указанные выше хеши паролей и ключи не существуют и приведены для примера.
Аутентификация пользователей#
Аутентификация с использованием ssh-ключа#
Чтобы настроить ssh-ключ для аутентификации локального пользователя, используйте конфигурацию Butane:
variant: sbcos
version: 3.2.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
- name: user_1
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
- sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
- name: user_2
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...
Примечание
Указанные выше хеши паролей и ключи не существуют и приведены для примера.
Расположение ssh-ключей#
sshd использует вспомогательную программу для чтения открытых ключей из файлов в каталоге пользователя ~/.ssh/authorized_keys.d. Ключевые файлы читаются в алфавитном порядке, игнорируя точечные файлы. Для отладки чтения ~/.ssh/authorized_keys.d вручную запустите вспомогательную программу и проверьте ее вывод:
/usr/libexec/ssh-key-dir
Ignition записывает настроенные ssh-ключи в файл ~/.ssh/authorized_keys.d/ignition.
Аутентификация с использованием пароля#
SberLinux OS Сore поставляется без паролей по умолчанию. Чтобы установить пароль для локального пользователя, используйте конфигурацию Butane.
Ниже показан пример настройки password_hash для нескольких пользователей:
variant: sbcos
version: 3.2.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
- name: user_1
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
- sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
- name: user_2
password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...
Примечание
Указанные выше хеши паролей и ключи не существуют и приведены для примера.
Чтобы создать безопасный хеш пароля, используйте mkpasswdfrom whoispackage. Для того чтобы проверить правильность настроек, запустите из контейнера:
crio run -ti --rm quay.io/oscore/mkpasswd --method=yescrypt
Пример вывода команды:
Password:
$y$j9T$A0Y3wwVOKP69S.1K/zYGN.$S596l11UGH3XjN...
Метод хеширования yescrypt рекомендуется для новых паролей.
Настроенный пароль будет принят для локальной аутентификации на консоли.
Включение аутентификации по ssh-паролю#
Чтобы включить аутентификацию по паролю через ssh, добавьте в конфигурацию Butane следующее:
variant: sbcos
version: 3.2.0
storage:
files:
- path: /etc/ssh/sshd_config.d/20-enable-passwords.conf
mode: 0644
contents:
inline: |
# SberLinux OS Сore по умолчанию отключает вход по SSH-паролю.
# Включите его.
# Этот файл должен быть отсортирован до 40-disable-passwords.conf.
PasswordAuthentication yes
Настройка групп#
SberLinux OS Core поставляется с несколькими настроенными по умолчанию группами: root, adm, wheel, sudo.
При настройке пользователей через конфигурацию Butane укажите группы, частью которых должны быть пользователи:
variant: sbcos
version: 3.2.0
passwd:
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
- name: user_1
groups:
- wheel
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
- sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
- name: user_2
groups:
- wheel
password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
ssh_authorized_keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...
Примечание
Указанные выше хеши паролей и ключи не существуют и приведены для примера.
Если необходимой группы не существует, создайте ее как часть конфигурации Butane:
variant: sbcos
version: 3.2.0
passwd:
groups:
- name: engineering
- name: marketing
gid: 9000
users:
- name: core
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHn2eh...
- name: user_1
groups:
- engineering
- wheel
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDC5QFS...
- sh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIveEaMRW...
- name: user_2
groups:
- marketing
- wheel
password_hash: $y$j9T$aUmgEDoFIDPhGxEe2FUjc/$C5A...
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTey7R...
Примечание
Указанные выше хеши паролей и ключи не существуют и приведены для примера.