pkexec всегда запрашивает пароль первого пользователя.

Вопрос или проблема

Возможно, на это уже ответили в другом треде, но я не нашел обсуждение.
Настройка:

  1. Пользователь test1 создан при настройке
  2. Пользователь newUser1 добавлен позже
  3. Пользователь newUser1 выполняет “pkexec somecommand”, и система запрашивает пароль пользователя test1

Я проверил /etc/polkit-1/, но в этой структуре нет конфигурационного файла.
Почему pkexec запрашивает пароль test1?
Он должен запрашивать пароль newUser1. Или я что-то не так понял?

Благодаря пользователю user535733 новый пользователь не был членом группы “sudo”.
После добавления пользователя в эту группу, pkexec стал запрашивать пароль нового пользователя.

Ответ или решение

Вопрос, связанный с поведением pkexec, который требует пароль первого созданного пользователя в системе вместо пароля нового пользователя, является распространенной проблемой, особенно для тех, кто только начинает работать с управлением правами доступа в Linux. Рассмотрим глубже детали и возможные решения этой ситуации.

Контекст и описание проблемы

Вы описываете ситуацию, где:

  1. Пользователь test1 был создан в момент установки системы.
  2. Позже был добавлен пользователь newUser1.
  3. При запуске команды pkexec somecommand система запрашивает пароль пользователя test1, а не newUser1.

Это поведение связано с тем, что pkexec (часть системы политики управления доступом, известной как Polkit) используется для выполнения команд с повышенными правами. Важно понимать, что для выполнения команд с повышенными правами пользователь должен быть авторизован в системе.

Причины проблемы

К основным причинам того, почему pkexec запрашивает пароль test1, можно отнести:

  1. Права пользователя: Пользователь newUser1 не является членом группы с правами на выполнение команд с помощью pkexec, что приводит к тому, что системы не формирует корректный запрос на ввод пароля для newUser1.

  2. Конфигурационные файлы Polkit: Если в каталоге /etc/polkit-1/ отсутствуют подходящие конфигурационные файлы, это может быть связано с отсутствием необходимых разрешений для нового пользователя, которые могли быть установлены по умолчанию для test1.

  3. Проверка групповой принадлежности: Как упомянул пользователь user535733, если newUser1 не является частью группы sudo или аналогичных групп, система не сможет его корректно идентифицировать для выполнения команд с повышенными правами.

Решение проблемы

Чтобы решительно исправить эту ситуацию, выполните следующие шаги:

  1. Добавление пользователя в нужные группы:
    После создания нового пользователя убедитесь, что он включен в группу sudo. Это можно сделать, выполнив команду:

    sudo usermod -aG sudo newUser1

    После этого newUser1 получит права, необходимые для выполнения команд с использованием pkexec.

  2. Проверка конфигураций Polkit:
    Убедитесь, что нет специальных правил, которые могут запрещать пользователю newUser1 использовать pkexec. В каталоге /etc/polkit-1/localauthority/ можно проверить существующие правила.

  3. Проверка пользовательских прав:
    Убедитесь, что у пользователя newUser1 есть необходимые права. Это можно сделать с помощью команды:

    id newUser1

    Убедитесь, что в выводе вы видите, что newUser1 является членом нужных групп.

  4. Перезагрузка системы или текущей сессии:
    После внесения изменений возможно, потребуется выйти из системы и снова войти или даже перезагрузить систему, чтобы изменения вступили в силу.

Заключение

После выполнения вышеуказанных шагов команда pkexec somecommand должна запрашивать пароль пользователя newUser1, а не test1. Эта ситуация подчеркивает важность понимания прав пользователей и групп в системе Linux. Правильное управление доступом является ключевым аспектом безопасности системы, поэтому настоятельно рекомендуется тщательно проверять и настраивать групповые права для новых пользователей после их создания.

Оцените материал
Добавить комментарий

Капча загружается...