2010-12-30 21 views
15

Tôi đã xây dựng một hệ thống tập tin gốc trên cánh tay. Nó nên chạy dbus-daemon và avahi-daemon, nhưng khi tôi cố gắng chạy avahi-daemondbus_bus_request_name(): Các kết nối không được phép sở hữu dịch vụ

$ dbus-daemon --system 
$ avahi-daemon 

tôi nhận được tin nhắn này:

Found user 'avahi' (UID 4) and group 'avahi' (GID 4). 
Successfully dropped root privileges. 
avahi-daemon 0.6.28 starting up. 
WARNING: No NSS support for mDNS detected, consider installing nss-mdns! 
dbus_bus_request_name(): Connection ":1.0" is not allowed to own the service "org.freedesktop.Avahi" due to security policies in the configuration file 
WARNING: Failed to contact D-Bus daemon. 
avahi-daemon 0.6.28 exiting. 

Điều gì là sai? Đó là về cấu hình dbus?

+0

Cho chúng tôi biết cách bạn đã định cấu hình dbus & avahi. – ismail

Trả lời

5

Tôi gặp sự cố tương tự, trong trường hợp của tôi, avahi-dbus.conf mặc định đi kèm với hệ thống gói hệ thống của tôi chỉ thiếu "</policy>" trước "</busconfig>" đã kích hoạt lỗi này.

Lần đầu tiên tôi nghĩ rằng sự cố không đến từ tệp này vì việc xem nhanh nó không đủ để tìm loại lỗi cú pháp này.

14

Có những hạn chế về những gì khách hàng có thể đăng ký tên trên xe buýt hệ thống. Nếu không, quy trình người dùng có thể nhận được yêu cầu dành cho một số dịch vụ hệ thống. Các hạn chế được cấu hình thông qua tệp cấu hình dbus-daemon, thường là /etc/dbus-1/system.conf. Trong cài đặt tiêu chuẩn, tệp này bao gồm các tệp cấu hình khác, đặc biệt là tất cả trong thư mục /etc/dbus-1/system.d/, nơi lưu trữ cấu hình dịch vụ cụ thể. Bằng cách này dbus thường được cấu hình cho Avahi:

Ví dụ từ máy trạm của tôi:

$ cat /etc/dbus-1/system.d/avahi-dbus.conf 
<!DOCTYPE busconfig PUBLIC 
      "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" 
      "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> 
<busconfig> 

    <!-- Only root or user avahi can own the Avahi service --> 
    <policy user="avahi"> 
    <allow own="org.freedesktop.Avahi"/> 
    </policy> 
    <policy user="root"> 
    <allow own="org.freedesktop.Avahi"/> 
    </policy> 

    <!-- Allow anyone to invoke methods on Avahi server, except SetHostName --> 
    <policy context="default"> 
    <allow send_destination="org.freedesktop.Avahi"/> 
    <allow receive_sender="org.freedesktop.Avahi"/> 

    <deny send_destination="org.freedesktop.Avahi" 
      send_interface="org.freedesktop.Avahi.Server" send_member="SetHostName"/> 
    </policy> 

    <!-- Allow everything, including access to SetHostName to users of the group "adm" --> 
    <policy group="adm"> 
    <allow send_destination="org.freedesktop.Avahi"/> 
    <allow receive_sender="org.freedesktop.Avahi"/> 
    </policy> 
    <policy user="root"> 
    <allow send_destination="org.freedesktop.Avahi"/> 
    <allow receive_sender="org.freedesktop.Avahi"/> 
    </policy> 
</busconfig> 

Hãy chắc chắn rằng bạn có những tập tin cấu hình tiêu chuẩn hoặc một cấu hình tùy chỉnh thích hợp tại chỗ.

14

Trong trường hợp của tôi, tôi chỉ cần khởi động lại dịch vụ dbus.

Điều này có thể là do avahi đã chèn tệp cấu hình dbus (/etc/dbus-1/system.d/avahi-dbus.conf) không được phát hiện tự động.