Вопрос или проблема
Я использую Rock Pi S с Debian 12 и создал нового пользователя с именем guest. В то время как я нахожусь в системе под гостем, при выполнении команд, таких как systemctl stop <service_name>, меня просят аутентифицироваться как другие пользователи, конкретно radxa и rock. Эти пользователи были заранее настроены в системе, но я больше не хочу, чтобы происходила аутентификация с использованием этих учетных записей, когда я работаю как guest.
Я проверил, что пользователь guest не является членом каких-либо общих групп с radxa или rock. Нет явных ссылок на radxa или rock в /etc/sudoers и /etc/sudoers.d. Нет файлов в /etc/pam.d/, указывающих на radxa или rock. И я не хочу удалять пользователя radxa или rock.
Вопросы:
Почему система запрашивает аутентификацию с использованием radxa и rock, когда я вхожу в систему как пользователь guest?
Как я могу полностью остановить эти запросы на аутентификацию между пользователями и гарантировать, что пользователь guest работает самостоятельно?
Эти команды запрашивают админскую аутентификацию (т.е. polkit интерактивную авторизацию, где администратор одобряет действие). Если пользователь guest не администратор, то всегда будет запрашиваться “перекрестная аутентификация”, когда программа использует polkit для проверки авторизации этих действий.
С policykit администраторские пользователи обычно определяются через членство в группе wheel
, хотя каждая дистрибуция и каждая система могут настраивать это по-своему, например, используя группу sudo
или что-то еще — используйте grep по /etc/polkit-1
и /usr/share/polkit-1
для поиска “addAdminRule”.
/* /usr/share/polkit-1/rules.d/50-default.rules */
polkit.addAdminRule(function(action, subject) {
return ["unix-group:wheel"];
});
Правила, позволяющие неадминам выполнять определенные действия (или блокирующие некоторые действия без возможности админутверждения), могут быть написаны в таком же формате. Смотрите man 8 polkit
. Хотя, если вы хотите, чтобы пользователь guest мог управлять системными сервисами… возможно, стоит пересмотреть это. Или просто прямо сказать им пароль root.
/* /etc/polkit-1/rules.d/90-block-guest.rules */
polkit.addRule(function(action, subject) {
if (subject.user == "guest") {
return polkit.Result.NO;
}
});
Результат по умолчанию фактически определяется в XML-файлах “action”, поставляемых с пакетами, но он обычно AUTH_ADMIN(_KEEP) для большинства вещей, и именно это вызывает запрос на “админскую аутентификацию”.
Ответ или решение
Уважаемый пользователь,
Вы столкнулись с проблемой запросов на аутентификацию от пользователей radxa и rock при выполнении команд от имени пользователя guest на Debian 12, установленной на Rock Pi S. Давайте разберёмся, почему это происходит и как решить вашу задачу.
Причины запросов на аутентификацию
При выполнении команд, таких как systemctl stop <service_name>
, система использует Polkit (ранее известный как PolicyKit) для проверки авторизации. Polkit отвечает за управление доступом пользователей к системным операциям, которые требуют административных привилегий. Запросы на аутентификацию появляются, так как Polkit пытается получить авторизацию от пользователей с административными правами, в вашем случае – radxa и rock. Эти пользователи могут быть членами группы, обозначенной как административная, например, wheel
или sudo
.
Решение проблемы
-
Проверьте настройки Polkit:
- Откройте файлы
/etc/polkit-1/rules.d/
и посмотрите, какие группы или пользователи считаются административными. Найдите конфигурации подобные:polkit.addAdminRule(function(action, subject) { return ["unix-group:wheel"]; });
- Убедитесь, что пользователи radxa и rock не являются членами этих групп. Также проверьте файлы в каталоге
/usr/share/polkit-1
на наличие дополнительных настроек.
- Откройте файлы
-
Настройте исключения для пользователя guest:
- Создайте файл в
/etc/polkit-1/rules.d/
, к примеру,90-block-guest.rules
, используя следующий код:polkit.addRule(function(action, subject) { if (subject.user == "guest") { return polkit.Result.NO; } });
- Этот код запретит пользователю guest выполнять действия, требующие административной аутентификации, что избавит вас от нежелательных запросов.
- Создайте файл в
-
Размышления о назначении прав пользователю guest:
- Если вы хотите, чтобы пользователь guest имел возможность выполнять определенные действия, рассмотрите возможность предоставления ему необходимых привилегий на уровне Polkit или через систему sudo, но с осторожностью, чтобы не открыть лишние права.
Заключение
Следуя описанным шагам, вы сможете устранить проблему несанкционированных запросов на аутентификацию от пользователей radxa и rock. Это обеспечит необходимую независимость вашего пользователя guest при выполнении системных задач. Также я рекомендую более подробно ознакомиться с документацией Polkit (man 8 polkit
) для дальнейшей оптимизации доступа пользователей.
С уважением,
[Ваше имя/подпись]