Вопрос или проблема
Возможно, на это уже ответили в другом треде, но я не нашел обсуждение.
Настройка:
- Пользователь test1 создан при настройке
- Пользователь newUser1 добавлен позже
- Пользователь newUser1 выполняет “pkexec somecommand”, и система запрашивает пароль пользователя test1
Я проверил /etc/polkit-1/, но в этой структуре нет конфигурационного файла.
Почему pkexec запрашивает пароль test1?
Он должен запрашивать пароль newUser1. Или я что-то не так понял?
Благодаря пользователю user535733 новый пользователь не был членом группы “sudo”.
После добавления пользователя в эту группу, pkexec стал запрашивать пароль нового пользователя.
Ответ или решение
Вопрос, связанный с поведением pkexec
, который требует пароль первого созданного пользователя в системе вместо пароля нового пользователя, является распространенной проблемой, особенно для тех, кто только начинает работать с управлением правами доступа в Linux. Рассмотрим глубже детали и возможные решения этой ситуации.
Контекст и описание проблемы
Вы описываете ситуацию, где:
- Пользователь
test1
был создан в момент установки системы. - Позже был добавлен пользователь
newUser1
. - При запуске команды
pkexec somecommand
система запрашивает пароль пользователяtest1
, а неnewUser1
.
Это поведение связано с тем, что pkexec
(часть системы политики управления доступом, известной как Polkit) используется для выполнения команд с повышенными правами. Важно понимать, что для выполнения команд с повышенными правами пользователь должен быть авторизован в системе.
Причины проблемы
К основным причинам того, почему pkexec
запрашивает пароль test1
, можно отнести:
-
Права пользователя: Пользователь
newUser1
не является членом группы с правами на выполнение команд с помощьюpkexec
, что приводит к тому, что системы не формирует корректный запрос на ввод пароля дляnewUser1
. -
Конфигурационные файлы Polkit: Если в каталоге
/etc/polkit-1/
отсутствуют подходящие конфигурационные файлы, это может быть связано с отсутствием необходимых разрешений для нового пользователя, которые могли быть установлены по умолчанию дляtest1
. -
Проверка групповой принадлежности: Как упомянул пользователь
user535733
, еслиnewUser1
не является частью группыsudo
или аналогичных групп, система не сможет его корректно идентифицировать для выполнения команд с повышенными правами.
Решение проблемы
Чтобы решительно исправить эту ситуацию, выполните следующие шаги:
-
Добавление пользователя в нужные группы:
После создания нового пользователя убедитесь, что он включен в группуsudo
. Это можно сделать, выполнив команду:sudo usermod -aG sudo newUser1
После этого
newUser1
получит права, необходимые для выполнения команд с использованиемpkexec
. -
Проверка конфигураций Polkit:
Убедитесь, что нет специальных правил, которые могут запрещать пользователюnewUser1
использоватьpkexec
. В каталоге/etc/polkit-1/localauthority/
можно проверить существующие правила. -
Проверка пользовательских прав:
Убедитесь, что у пользователяnewUser1
есть необходимые права. Это можно сделать с помощью команды:id newUser1
Убедитесь, что в выводе вы видите, что
newUser1
является членом нужных групп. -
Перезагрузка системы или текущей сессии:
После внесения изменений возможно, потребуется выйти из системы и снова войти или даже перезагрузить систему, чтобы изменения вступили в силу.
Заключение
После выполнения вышеуказанных шагов команда pkexec somecommand
должна запрашивать пароль пользователя newUser1
, а не test1
. Эта ситуация подчеркивает важность понимания прав пользователей и групп в системе Linux. Правильное управление доступом является ключевым аспектом безопасности системы, поэтому настоятельно рекомендуется тщательно проверять и настраивать групповые права для новых пользователей после их создания.