Вопрос или проблема
При запуске setroubleshootd в Fedora я получаю эту ошибку:
org.freedesktop.DBus.Error.AccessDenied: Соединение ":1.79" не имеет права владеть сервисом "org.fedoraProject.Setroubleshootd" из-за политик безопасности в конфигурационном файле
Теперь я знаю, что это связано с политикой dbus, либо в /etc/dbus-1/system.conf
, либо в файле в /etc/dbus-1/system.d/
, либо в /etc/dbus-1/session.conf
, либо в файле в /etc/dbus-1/session.d/*
Но у меня нет представления, в чем именно проблема, на какой файл мне нужно смотреть, какую политику мне нужно изменить или как я должен ее изменить.
С момента выхода Fedora 11, setroubleshootd не должен работать в фоне:
setroubleshootd теперь является сервисом dbus. Его следует запускать,
когда поступает AVC или вы запускаете браузер sealert. Он завершает работу через 10
секунд после последнего соединения/поступления AVC.
Если вы не получаете уведомления на рабочем столе, возможно, проблема заключается не в том, что setroubleshootd не работает все время.
Ответ или решение
Ошибка доступа dbus при запуске службы setroubleshootd в Fedora может быть вызвана неправильными настройками конфигурационного файла D-Bus, которые не позволяют указанному клиенту подключиться к службе org.fedoraProject.Setroubleshootd
. Для решения этой проблемы необходимо выполнить несколько шагов для диагностики и возможного изменения настроек.
Шаг 1: Проверка ошибок в журнале
Первое, что следует сделать, — ознакомиться с журналами системы, чтобы получить дополнительную информацию о возникшей ошибке. Это можно сделать с помощью команды:
journalctl -xe | grep -i dbus
Это может помочь выявить дополнительные сообщения об ошибках, относящиеся к контексту D-Bus.
Шаг 2: Поиск конфигурационных файлов D-Bus
Убедитесь, что вы проверяете все возможные конфигурационные файлы D-Bus, дизассоциированные с системной и пользовательской сессией. Основные файлы настройки D-Bus можно найти по следующим путям:
/etc/dbus-1/system.conf
/etc/dbus-1/system.d/*
/etc/dbus-1/session.conf
/etc/dbus-1/session.d/*
Шаг 3: Анализ конфигураций D-Bus
Откройте файлы в вашем текстовом редакторе, например, nano
или vim
, и ищите секции, относящиеся к политике доступа для org.fedoraProject.Setroubleshootd
. Например, обращайте внимание на следующие строки:
<policy domain="org.fedoraProject.Setroubleshootd">
<allow own="true"/>
</policy>
Если такой секции нет, это может быть причиной вашей проблемы. В противном случае убедитесь, что ваш пользователь или группа, от имени которых запущен setroubleshootd
, имеет разрешение владеть данной службой.
Шаг 4: Модификация конфигурации
Если вы находите, что необходимо добавить или изменить конфигурацию, сделайте это следующим образом:
- Создайте резервную копию файла, который вы собираетесь редактировать.
- Добавьте необходимую политику. Например:
<policy domain="org.fedoraProject.Setroubleshootd">
<allow own="true"/>
<allow send="true" bus="session"/>
</policy>
Это позволит вашему клиенту подключаться к службе setroubleshootd
.
Шаг 5: Перезагрузка D-Bus
После внесения изменений в конфигурацию D-Bus необходимо перезагрузить сервисы, чтобы конфигурации вступили в силу:
systemctl restart dbus
Шаг 6: Проверка состояния setroubleshootd
Запустите setroubleshootd
и проверьте, возникает ли ошибка снова. Убедитесь, что ваша сессия пользователя обновлена, и служба запущена корректно:
setroubleshootd
Заключение
Если проблема сохраняется после выполнения этих шагов, возможно, стоит проверить другие аспекты SELinux, настройки D-Bus или конфигурации системы. Необходимо внимательно следить за логами и документировать изменения, которые вы делаете, чтобы иметь возможность в дальнейшем восстанавливать систему в случае необходимости.
Таким образом, решение проблемы с ошибкой доступа dbus требует понимания политики доступа D-Bus и возможной необходимости в ее изменении, а также постоянного мониторинга логов для отладки.