Настройка пользователей и групп#

Настройка пользователей#

Пользователь по умолчанию#

По умолчанию в компоненте Базовая ОС (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/.

  1. При запуске visudo требуется указать, какой файл нужно отредактировать, при помощи опции -f. Например, введите команду:

    visudo -f /etc/sudoers.d/user_1
    
  2. Далее добавьте строку:

    user_1 ALL=(ALL) NOPASSWD: ALL
    
  3. Убедитесь, что sudo был предоставлен:

    su user_1
    
    cat /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_1
    
    user_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...

Примечание

Указанные выше хеши паролей и ключи не существуют и приведены для примера.