Аутентификация необходима для управления системными службами или устройствами.

19

У меня возникает странная проблема, когда я пытаюсь остановить / запустить демона как обычный пользователь, он запрашивает аутентификацию с использованием учетных данных другого обычного пользователя - например:

[bob@server ~]$ systemctl stop some-daemon.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: alice
Password: 

Почему Алиса запрашивает аутентификацию при входе в систему bob , и как мне это исправить?

Джек О'Лири
источник
Как выглядит файл конфигурации сервиса?
Дженни Ди говорит восстановить Монику
@JennyD: где находится расположение файла конфигурации?
Джек О'Лири
То, что ты хочешь? Вы хотите запустить собственный сервис копирования для каждого пользователя? Например, запустить собственный VNC-демон для Алисы и собственный VNC-демон для Боба ?
Александр Толкачев,
@AlexanderT: у каждого пользователя должен быть свой собственный vncserver, вот как он спроектирован, так что да, это более или менее так. Боб не работает с сервером vnc, он запускает что-то не связанное, но когда он пытается запустить его, systemctl запрашивает пароль Алисы ... (пожимает плечами).
Джек О'Лири
@ JackO'Leary, вы можете попробовать использовать, systemd --userкак описано в этой статье . В противном случае вы могли бы предоставить sudo для каждого пользователя для необходимых услуг.
Александр Толкачев

Ответы:

8

Ваша система использует polkitдиспетчер авторизации, и сообщение из файла /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy. polkitможет быть настроены в /etc/polkit-1и /usr/share/polkit-1каталогах, более конкретно в rules.dи actionsподкаталогах. См. Справочную страницу Polkit для получения дополнительной информации.

Йохан Мирен
источник
Из документации: «polkit позволяет пользователям получать временную авторизацию посредством аутентификации либо администратора, либо владельца сеанса, к которому принадлежит клиент». Может быть, это может дать понять, почему он запрашивает пароль Алисы.
Йохан Мирен
Я думаю, что вы тут что-то понимаете, хотя я все еще полностью потерялся в том, где удалить правило или что бы то ни было от другого пользователя, который продолжает просить аутентификацию. Я посмотрел в обоих этих каталогах и даже сделал grep для "Алисы", и ничего не было возвращено.
Джек О'Лири
Ранее вы говорили, что сделали su - aliceперед запуском демона vnc. Я предполагаю, что это делает Алису "владельцем сеанса, к которому принадлежит клиент".
Йохан Мирен
Что не имеет смысла, так это то, что это было сделано только для одного сервиса, который затем был остановлен и пользователь вышел из системы. Другой сервис для bob не должен иметь ничего общего с Алисой, поскольку это было что-то совершенно другое - это очень странно ... Я бы не отказался вообще отключить polkit, если это нормальное поведение.
Джек О'Лири
Вы можете узнать, кто является владельцем сеанса с помощью loginctlкоманды. Это может подтвердить или опровергнуть мою теорию о том, что polkit просит владельца сеанса аутентифицироваться. Я действительно не могу сказать, почему Алиса является владельцем в этом случае.
Йохан Мирен
5

При управлении системными службами вам нужно делать это как root, а не как обычный пользователь. На это указывает $символ в конце приглашения оболочки.

Вы можете использовать sudo commandили переключиться на root (корневая оболочка обычно обозначается как #char).

Халед
источник
Даже если я делаю это как root, он запрашивает обычную аутентификацию пользователей. По сути, пользователь root su - aliceзатем systemctlзапустил свой демон vnc, но теперь он запрашивает их аутентификацию для всех, systemctlнезависимо от того, что это такое ...
Джек О'Лири,
Я получил сообщение об ошибке, когда набрал «/etc/init.d/munge start». Добавление sudo исправило это. Благодарность!
фчен
0

Проверьте / etc / groups и sudoers rule. Это может произойти, если человек добавил себя в группу wheel и таким образом стал root.

natermer
источник