هذا هو الأمر dbus-daemon الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
dbus-daemon - خدمة ناقل الرسائل
موجز
دبوس الخفي
دبوس الخفي [- الإصدار] [- جلسة] [- نظام] [--config-file =FILE]
[- طباعة العنوان [= الوصف]] [- print-pid [= الوصف]] [--شوكة]
الوصف
دبوس الخفي هو البرنامج الخفي لحافلة رسالة D-Bus. يرى http://www.freedesktop.org/software/dbus/
لمزيد من المعلومات حول الصورة الكبيرة. D-Bus هي أول مكتبة توفر ملفات
اتصال واحد لواحد بين أي تطبيقين ؛ دبوس الخفي هو تطبيق
يستخدم هذه المكتبة لتنفيذ البرنامج الخفي لناقل الرسائل. تتصل برامج متعددة بـ
رسالة حافلة الخفي ويمكن تبادل الرسائل مع بعضها البعض.
هناك حالتان معياريتان لناقلان الرسائل: ناقل الرسائل على مستوى النظام (مثبت على
العديد من الأنظمة مثل خدمة init "messagebus") وناقل الرسائل لكل جلسة تسجيل دخول للمستخدم
(بدأ في كل مرة يقوم فيها المستخدم بتسجيل الدخول). دبوس الخفي يستخدم في كلتا الحالتين ، ولكن
بملف تكوين مختلف.
الخيار --session يكافئ "--config-file =/usr/share/dbus-1/session.conf"و
الخيار --system يكافئ "--config-file =/usr/share/dbus-1/system.conf". بواسطة
إنشاء ملفات تكوين إضافية واستخدام خيار --config-file الإضافي
يمكن إنشاء شياطين ناقل الرسائل ذات الأغراض الخاصة.
عادةً ما يتم تشغيل البرنامج الخفي على مستوى النظام بواسطة برنامج نصي init ، يسمى بشكل قياسي ببساطة
"messagebus".
يتم استخدام البرنامج الخفي على مستوى النظام بشكل كبير لبث أحداث النظام ، مثل التغييرات في
قائمة انتظار الطابعة ، أو إضافة / إزالة الأجهزة.
يتم استخدام البرنامج الخفي لكل جلسة في العديد من الاتصالات بين العمليات بين سطح المكتب
التطبيقات (ومع ذلك ، فهي غير مرتبطة بـ X أو واجهة المستخدم الرسومية بأي شكل من الأشكال).
سيجعل SIGHUP عفريت D-Bus يعيد جزئيًا تحميل ملف التكوين الخاص به وتدفقه
مخابئ معلومات المستخدم / المجموعة الخاصة بها. قد تتطلب بعض تغييرات التكوين ركل الكل
تطبيقات خارج الحافلة. لذلك لن تصبح سارية المفعول إلا إذا أعدت تشغيل البرنامج الخفي. تغييرات السياسة
يجب أن يسري مع SIGHUP.
OPTIONS
الخيارات التالية مدعومة:
--config-file = FILE
استخدم ملف التكوين المحدد.
--شوكة
إجبار ناقل الرسالة على الانقسام وأصبح خفيًا ، حتى لو كان ملف التكوين يفعل ذلك
لا تحدد ما ينبغي. في معظم السياقات ، يحصل ملف التكوين على هذا بالفعل
صحيح ، رغم ذلك. هذا الخيار غير مدعوم في Windows.
- نوفورك
إجبار ناقل الرسالة على عدم الانقسام وأصبح خفيًا ، حتى لو كان ملف التكوين
يحدد أنه ينبغي. على نظام Windows ، لا ينفصل dbus-daemon أبدًا ، لذلك هذا الخيار هو
مسموح به ولكنه لا يفعل شيئًا.
- عنوان الطباعة [= الوصف]
اطبع عنوان ناقل الرسالة إلى الإخراج القياسي ، أو إلى الملف المحدد
واصف. يتم استخدام هذا من قبل البرامج التي تقوم بتشغيل ناقل الرسائل.
--print-pid [= DESCRIPTOR]
اطبع معرف العملية الخاص بناقل الرسائل إلى الإخراج القياسي ، أو إلى الملف المحدد
واصف. يتم استخدام هذا من قبل البرامج التي تقوم بتشغيل ناقل الرسائل.
--حصة
استخدم ملف التكوين القياسي لناقل الرسائل لكل جلسة تسجيل دخول.
--النظام
استخدم ملف التكوين القياسي لناقل الرسائل على مستوى النظام.
--الإصدار
اطبع نسخة البرنامج الخفي.
- تأمل
اطبع معلومات الاستبطان لجميع واجهات D-Bus الداخلية.
- العنوان [= العنوان]
اضبط العنوان الذي تريد الاستماع إليه. يلغي هذا الخيار العنوان الذي تم تكوينه في ملف
ملف الضبط.
--تفعيل النظام
تفعيل تنشيط خدمة على غرار نظام. مفيد فقط بالاشتراك مع systemd
مدير النظام والجلسة على Linux.
--nopidfile
لا تكتب ملف PID حتى إذا تم تكوينه في ملفات التكوين.
CONFIGURATION FILE
يحتوي البرنامج الخفي لناقل الرسائل على ملف تكوين يختص به لملف معين
طلب. على سبيل المثال ، قد يقوم أحد ملفات التكوين بإعداد ناقل الرسالة ليكون ملف
ناقل الرسائل على مستوى النظام ، بينما قد يقوم الآخر بإعداده ليكون ناقل جلسة تسجيل دخول لكل مستخدم.
يحدد ملف التكوين أيضًا حدود الموارد ومعلمات الأمان وما إلى ذلك
إيابا.
ملف التكوين ليس جزءًا من أي مواصفات التشغيل البيني وإصداره الخلفي
التوافق غير مضمون ؛ هذه الوثيقة هي وثائق وليست مواصفات.
يتم تكوين إعدادات ناقل الرسائل القياسية على مستوى النظام وكل جلسة في الملفات
"/usr/share/dbus-1/system.conf"و"/usr/share/dbus-1/session.conf". هذه الملفات عادة
نظام local.conf أو جلسة local.conf في / etc / dbus-1؛ يمكنك وضعه محليًا
يتجاوز تلك الملفات لتجنب تعديل ملفات التكوين الأساسية.
ملف التكوين هو مستند XML. يجب أن يحتوي على تصريح نوع المستند التالي:
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
قد تكون العناصر التالية موجودة في ملف التكوين.
·
عنصر الجذر.
·
النوع المعروف لناقل الرسائل. القيم المعروفة حاليًا هي "النظام" و "الدورة" ؛
إذا تم تعيين قيم أخرى ، فيجب إضافتها إلى مواصفات D-Bus ، أو
مسافة الاسم. الاخير العنصر "يفوز" (يتم تجاهل القيم السابقة). هذا العنصر
يتحكم فقط في متغيرات البيئة المحددة لناقل الرسالة التي تم تعيينها في التنشيط
عملاء. معظم السياسة التي تميز ناقل الجلسة عن ناقل النظام هي
يتحكم فيها من العناصر الأخرى في ملف التكوين.
إذا كان النوع المعروف لناقل الرسائل هو "جلسة" ، فإن DBUS_STARTER_BUS_TYPE
سيتم تعيين متغير البيئة على "جلسة" وبيئة DBUS_SESSION_BUS_ADDRESS
سيتم تعيين المتغير على عنوان ناقل الجلسة. وبالمثل ، إذا كان نوع ملف
ناقل الرسالة هو "النظام" ، ثم سيتم تعيين متغير البيئة DBUS_STARTER_BUS_TYPE
إلى "النظام" وسيتم تعيين متغير البيئة DBUS_SESSION_BUS_ADDRESS إلى
عنوان ناقل النظام (والذي عادة ما يكون معروفًا جيدًا على أي حال).
مثال: حصة
·
قم بتضمين ملف اسم الملف عند هذه النقطة. إذا كان اسم الملف هو
نسبيًا ، فهو موجود بالنسبة إلى ملف التكوين الذي يقوم بما في ذلك.
لها سمة اختيارية "ignore_missing = (نعم | لا)" والتي يتم تعيينها افتراضيًا على "لا" إذا
غير مزود. تتحكم هذه السمة فيما إذا كان الملف المضمن خطأً فادحًا أم لا
كن غائبا.
·
قم بتضمين جميع الملفات بتنسيق طعام عند هذه النقطة. الملفات الموجودة في الدليل
تم تضمينها في ترتيب غير محدد. يتم تضمين الملفات التي تنتهي بـ ".conf" فقط.
يهدف هذا إلى السماح بتمديد ناقل النظام بحزم معينة. على سبيل المثال،
إذا أراد CUPS أن يكون قادرًا على إرسال إشعار بتغييرات قائمة انتظار الطابعة ، فيمكنه ذلك
تثبيت ملف على /usr/share/dbus-1/system.d أو /etc/dbus-1/system.d الذي سمح لجميع التطبيقات
لتلقي هذه الرسالة والسماح للمستخدم الخفي للطابعة بإرسالها.
·
حساب المستخدم يجب أن يعمل البرنامج الخفي كاسم مستخدم أو معرّف فريد (UID). إذا كان الخفي
لا يمكن التغيير إلى هذا UID عند بدء التشغيل ، وسوف يخرج. إذا لم يكن هذا العنصر موجودًا ، فسيتم
لن يغير البرنامج الخفي أو يهتم بمعرفه الفريد.
الاخير الدخول في ملف "يفوز" ، يتم تجاهل الآخرين.
يتم تغيير المستخدم بعد اكتمال تهيئة الناقل. حتى مآخذ إلخ سيكون
تم إنشاؤه قبل تغيير المستخدم ، ولكن لن تتم قراءة أي بيانات من العملاء قبل تغيير المستخدم.
هذا يعني أنه يمكن إنشاء مآخذ التوصيل وملفات PID في موقع يتطلب الجذر
امتيازات الكتابة.
·
في حالة وجوده ، يصبح البرنامج الخفي للناقل خفيًا حقيقيًا (مفترقات في الخلفية ، وما إلى ذلك). هذا
يستخدم بشكل عام بدلاً من خيار سطر الأوامر --fork.
·
في حالة وجوده ، يحتفظ البرنامج الخفي للحافلة بمسندته الأصلية عند التفرع. قد يكون هذا مفيدًا لـ
تجنب التأثير على سلوك عمليات الطفل.
·
في حالة وجوده ، سيقوم البرنامج الخفي للناقل بتسجيل الدخول إلى سجل النظام.
·
في حالة وجوده ، سيكتب البرنامج الخفي للناقل معرف معرفته إلى الملف المحدد. الملف --nopidfile
خيار سطر الأوامر له الأسبقية على هذا الإعداد.
·
إذا كان موجودًا ، فستكون الاتصالات التي تمت مصادقتها باستخدام آلية ANONYMOUS
مخول بالاتصال. هذا الخيار ليس له أي تأثير عملي ما لم تكن آلية مجهولة
تم أيضًا تمكينه باستخدام العنصر الموضح أدناه.
·
أضف عنوانًا يجب أن تستمع إليه الحافلة. العنوان بتنسيق D-Bus القياسي
الذي يحتوي على اسم النقل بالإضافة إلى المعلمات / الخيارات الممكنة.
مثال: يونكس: المسار = / tmp / foo
مثال: tcp: المضيف = المضيف المحلي ، المنفذ = 1234
إذا كان هناك عدة عناصر ، ثم الحافلة تستمع إلى عناوين متعددة. ال
ستمر الحافلة عنوانها إلى الخدمات التي بدأت أو الأطراف المعنية الأخرى مع الأخير
العنوان الوارد في أولاً. وهذا يعني أن التطبيقات ستحاول الاتصال بالآخر
العنوان الأول.
يمكن لمآخذ tcp قبول عناوين IPv4 أو عناوين IPv6 أو أسماء المضيفين. إذا تم حل اسم المضيف
لعناوين متعددة ، سيرتبط الخادم بها جميعًا. الأسرة = ipv4 أو الأسرة = ipv6
يمكن استخدام الخيارات لإجبارها على الارتباط بمجموعة فرعية من العناوين
مثال: tcp: host = localhost ، port = 0 ، family = ipv4
حالة خاصة تستخدم رقم منفذ صفر (أو حذف المنفذ) ، مما يعني أن
اختر منفذًا متاحًا محددًا بواسطة نظام التشغيل. يمكن أن يكون رقم المنفذ المختار
تم الحصول عليها باستخدام معلمة سطر الأوامر --print-address وستكون موجودة في أخرى
الحالات التي يُبلغ فيها الخادم عن عنوانه الخاص ، مثل عندما يكون DBUS_SESSION_BUS_ADDRESS هو
تعيين.
مثال: tcp: المضيف = المضيف المحلي ، المنفذ = 0
تسمح عناوين tcp / nonce-tcp أيضًا بخيار bind = hostname ، المستخدم في عنوان قابل للاستماع إلى
تكوين الواجهة التي سيستمع الخادم إليها: إما أن يكون اسم المضيف هو IP
عنوان إحدى واجهات الجهاز المحلي (الأكثر شيوعًا 127.0.0.1) ، اسم DNS
الذي يتحول إلى أحد عناوين IP هذه ، "0.0.0.0" للاستماع على جميع واجهات IPv4
في نفس الوقت ، أو "::" للاستماع إلى جميع واجهات IPv4 و IPv6 في وقت واحد (if
بدعم من نظام التشغيل). إذا لم يتم تحديده ، فإن القيمة الافتراضية هي نفس قيمة "المضيف".
مثال: tcp: host = localhost ، bind = 0.0.0.0 ، port = 0
·
يسرد آليات الترخيص المسموح بها. إذا كان هذا العنصر غير موجود ، فكل شيء معروف
الآليات المسموح بها. إذا كان هناك عدة العناصر ، جميع الآليات المدرجة
مسموح. الترتيب الذي يتم سرد الآليات به ليس له معنى.
مثال: خارجي
مثال: DBUS_COOKIE_SHA1
·
يضيف دليلاً للبحث عن ملفات الخدمة. يتم فحص الدلائل بدءًا من
أولًا يظهر في ملف التكوين (تم العثور على أول ملف خدمة يوفر ملف
سيتم استخدام خدمة معينة).
تخبر ملفات الخدمة الناقل بكيفية بدء تشغيل البرنامج تلقائيًا. يتم استخدامها في المقام الأول
مع ناقل لكل جلسة مستخدم ، وليس ناقل على مستوى النظام.
·
يعادل تحديد سلسلة من
عناصر لكل من أدلة البيانات في "مواصفات دليل قاعدة XDG" مع
الدليل الفرعي "dbus-1 / services" ، على سبيل المثال "/ usr / share / dbus-1 / services" سيكون
من بين الدلائل التي تم البحث عنها.
يمكن العثور على "مواصفات دليل قاعدة XDG" على
http://freedesktop.org/wiki/Standards/basedir-spec إذا لم يتحرك ، فجرّب ملف
محرك البحث المفضل.
ال الخيار مناسب فقط للحافلة لكل جلسة مستخدم
الشيطان المحدد في /etc/dbus-1/session.conf. وضعه في أي ملف تكوين آخر
ربما يكون هراء.
·
يحدد دلائل التنشيط القياسية على مستوى النظام
التي يجب البحث عنها عن ملفات الخدمة. يتم تعيين هذا الخيار افتراضيًا على
/ usr / share / dbus-1 / system-services.
ال الخيار مناسب فقط لبرنامج ناقل لكل نظام
المعرفة في /usr/share/dbus-1/system.conf. وضعه في أي ملف تكوين آخر
ربما يكون هذا هراء.
·
يحدد المساعد setuid الذي يتم استخدامه لإطلاق عفريت النظام بامتداد
مستخدم بديل. عادة يجب أن يكون هذا هو dbus-daemon-launch-helper القابل للتنفيذ في
يقع في libexec.
ال الخيار مرتبط فقط بخادم ناقل لكل نظام المحدد في
/usr/share/dbus-1/system.conf. من المحتمل أن يتم وضعه في أي ملف تكوين آخر
كن هراء.
·
يحدد حد الموارد. على سبيل المثال:
64
512
سمة الاسم إلزامية. أسماء الحدود المتاحة هي:
"max_incoming_bytes": الحجم الإجمالي بالبايت للرسائل
واردة من اتصال واحد
"max_incoming_unix_fds": إجمالي عدد رسائل unix fds للرسائل
واردة من اتصال واحد
"max_outgoing_bytes": الحجم الإجمالي بالبايت من الرسائل
في قائمة الانتظار لاتصال واحد
"max_outgoing_unix_fds": العدد الإجمالي لرسائل unix fds
في قائمة الانتظار لاتصال واحد
"max_message_size": أقصى حجم لرسالة واحدة بتنسيق
بايت
"max_message_unix_fds": الحد الأقصى لملفات unix fds لرسالة واحدة
"service_start_timeout": مللي ثانية (جزء من الألف) حتى
يجب أن تتصل الخدمة التي بدأت
"auth_timeout": مللي ثانية (جزء من الألف) أ
يتم إعطاء اتصال ل
مصادقة
"waiting_fd_timeout": مللي ثانية (جزء من الألف) أ
يتم إرسال fd إلى
dbus-daemon قبل فصل ملف
صلة
"max_completed_connections": أقصى عدد للاتصالات المصادقة
"max_incomplete_connections": أقصى عدد لم تتم المصادقة
علاقات
"max_connections_per_user": أقصى عدد من الاتصالات المكتملة من
نفس المستخدم
"max_pending_service_starts": الحد الأقصى لعدد بدء تشغيل الخدمة في
التقدم في نفس الوقت
"max_names_per_connection": أقصى عدد للأسماء لمرة واحدة
يمكن أن يمتلك الاتصال
"max_match_rules_per_connection": أقصى عدد لقواعد المطابقة لملف واحد
صلة
"max_replies_per_connection": أقصى عدد للطريقة المعلقة
الردود لكل اتصال
(عدد المكالمات قيد التقدم)
"reply_timeout": مللي ثانية (جزء من الألف)
حتى تنتهي مهلة استدعاء طريقة
يسمح الحد الأقصى لأحجام قائمة الانتظار الواردة / الصادرة بوضع رسالة جديدة في قائمة الانتظار إذا بقي بايت واحد
أقل من الحد الأقصى. لذلك يمكنك في الواقع تجاوز الحد الأقصى بواسطة max_message_size.
max_completed_connections مقسومًا على max_connections_per_user هو عدد المستخدمين
يمكن أن يعملوا معًا لرفض الخدمة لجميع المستخدمين الآخرين باستخدام جميع الاتصالات الموجودة على
حافلة على مستوى النظام.
عادةً ما تكون الحدود ذات أهمية فقط على الناقل على مستوى النظام ، وليس حافلات جلسة المستخدم.
·
ال يحدد عنصر سياسة الأمان ليتم تطبيقها على مجموعة معينة من
اتصالات بالحافلة. تتكون السياسة من و عناصر. السياسات
تستخدم عادة مع الحافلة على مستوى النظام ؛ فهي مماثلة لجدار الحماية من حيث أنها تسمح بذلك
حركة المرور المتوقعة ومنع حركة المرور غير المتوقعة.
حاليًا ، يحتوي ناقل النظام على سياسة رفض افتراضي لإرسال مكالمات الطريقة وامتلاكها
أسماء الحافلات. كل شيء آخر ، وخاصة رسائل الرد ، يتلقى الشيكات والإشارات
سياسة السماح الافتراضية.
بشكل عام ، من الأفضل الاحتفاظ بخدمات النظام كبرامج صغيرة مستهدفة تعمل ضمنها
العملية الخاصة بهم وتقديم اسم ناقل واحد. بعد ذلك ، كل ما هو مطلوب هو ملف
قاعدة للإذن "الخاص" للسماح للعملية بالمطالبة باسم الحافلة ، و
قاعدة "send_destination" للسماح بالمرور من بعض أو كل uids إلى خدمتك.
ال العنصر له واحدة من أربع سمات:
السياق = "(افتراضي | إلزامي)"
at_console = "(صواب | خطأ)"
المستخدم = "اسم المستخدم أو معرف المستخدم"
group = "group name or gid"
يتم تطبيق النُهج على الاتصال على النحو التالي:
- كل السياق = يتم تطبيق السياسات "الافتراضية"
- all group = يتم تطبيق سياسات "مجموعة مستخدمي الاتصال"
بترتيب غير محدد
- كل المستخدمين = يتم تطبيق سياسات "مصادقة المستخدم للاتصال"
بترتيب غير محدد
- all at_console = يتم تطبيق سياسات "true"
- all at_console = يتم تطبيق سياسات "خطأ"
- كل السياق = يتم تطبيق السياسات "الإلزامية"
ستلغي السياسات المطبقة لاحقًا تلك المطبقة سابقًا ، عندما تتداخل السياسات.
يتم تطبيق سياسات متعددة مع نفس المستخدم / المجموعة / السياق بالترتيب الذي تظهر به
ملف التكوين.
أ يظهر العنصر أدناه أ عنصر ويحظر بعض الإجراءات. ال
يجعل العنصر استثناءً للسابق العبارات ، وتعمل تمامًا مثل لكن
ذات المعنى العكسي.
السمات المحتملة لهذه العناصر هي:
send_interface = "اسم_واجهة"
send_member = "method_or_signal_name"
send_error = "error_name"
send_destination = "name"
send_type = "method_call" | "طريقة_الرجوع" | "إشارة" | "خطأ"
send_path = "/ المسار / الاسم"
Receive_interface = "interface_name"
Receiving_member = "method_or_signal_name"
Receive_error = "error_name"
Receiver_sender = "name"
Receiver_type = "method_call" | "طريقة_الرجوع" | "إشارة" | "خطأ"
Receiving_path = "/ path / name"
send_requested_reply = "صحيح" | "خطأ شنيع"
Receipt_requested_reply = "صحيح" | "خطأ شنيع"
التنصت = "صحيح" | "خطأ شنيع"
تملك = "اسم"
own_prefix = "name"
المستخدم = "اسم المستخدم"
group = "groupname"
أمثلة:
ال تحدد سمات العنصر ما إذا كان الرفض "يتطابق" مع إجراء معين.
إذا كان متطابقًا ، فسيتم رفض الإجراء (ما لم تسمح به القواعد اللاحقة في ملف التكوين).
تعني قواعد الإرسال والاستلام المرسلة أنه لا يجوز إرسال الرسائل إلى أو
تم استلامها من * مالك * الاسم المعطى ، وليس أنه لا يجوز إرسالها * إلى هذا الاسم *.
بمعنى ، إذا كان الاتصال يمتلك الخدمات A ، B ، C ، وتم رفض الإرسال إلى A ، يتم الإرسال إلى B
أو C لن يعمل أيضًا.
سمتا الإرسال_ * والاستلام_ * الأخرى هي سمات نصية بحتة / حسب القيمة متطابقة مع ملف
حقل معين في عنوان الرسالة.
يحدث "التنصت" عندما يتلقى أحد التطبيقات رسالة صريحة
موجهة إلى اسم لا يمتلكه التطبيق ، أو هي رد على مثل هذه الرسالة.
وبالتالي فإن التنصت لا ينطبق إلا على الرسائل الموجهة للخدمات والردود عليها
مثل هذه الرسائل (أي أنها لا تنطبق على الإشارات).
ل ، يشير التنصت = "صواب" إلى أن القاعدة تتطابق حتى عند التنصت.
التنصت = "خطأ" هو الخيار الافتراضي ويعني أن القاعدة تسمح فقط للرسائل بالانتقال إليها
المتلقي المحدد. ل ، التنصت = "صحيح" يشير إلى تطابق القاعدة
فقط عند التنصت. التنصت = "خطأ" هو الخيار الافتراضي لـ أيضا ، ولكن هنا
يعني أن القاعدة تنطبق دائمًا ، حتى في حالة عدم التنصت. سمة التنصت
يمكن دمجها فقط مع قواعد الإرسال والاستلام (مع سمتَي الإرسال_ * والاستلام_ *).
تعمل السمة [send | Receipt] _requested_reply على نحو مشابه لسمة التنصت.
يتحكم في ما إذا كان ملف أو يطابق الرد المتوقع (يتوافق مع
رسالة استدعاء الطريقة السابقة). هذه السمة منطقية فقط لرسائل الرد
(أخطاء وإرجاع الطريقة) ، ويتم تجاهلها لأنواع الرسائل الأخرى.
ل ، [send | Receipt] _requested_reply = "true" هي القيمة الافتراضية وتشير إلى ذلك فقط
الردود المطلوبة مسموح بها من قبل القاعدة. [إرسال | تلقي] _requested_reply = يعني "خطأ"
أن القاعدة تسمح بأي رد حتى لو كان غير متوقع.
ل ، [إرسال | تلقي] _requested_reply = "خطأ" هو الخيار الافتراضي ولكنه يشير إلى أن ملف
تتطابق القاعدة فقط عندما لا يتم طلب الرد. [إرسال | تلقي] _requested_reply = "صحيح"
يشير إلى أن القاعدة تنطبق دائمًا ، بغض النظر عن حالة الرد المعلق.
يعني رفض المستخدم والمجموعة أن المستخدم أو المجموعة المعينة قد لا يتصلان بالرسالة
الحافلة.
بالنسبة إلى "الاسم" و "اسم المستخدم" و "اسم المجموعة" وما إلى ذلك ، يمكن استبدال الحرف "*" ، بمعنى
"أي." الكرات الأرضية المعقدة مثل "foo.bar. *" غير مسموح بها في الوقت الحالي لأنها ستعمل عليها
تنفيذ وربما تشجيع الأمان غير المستقر على أي حال.
يسمح لك بامتلاك الاسم "ab" أو أي اسم من
العناصر المفصولة بالنقاط هي "ab": على وجه الخصوص ، يمكنك امتلاك "abc" أو "abcd" ، لكن لا يمكنك امتلاك
"a.bc" أو "ac". يكون هذا مفيدًا عندما تحدد خدمات مثل Telepathy و ReserveDevice ملف
معنى الأشجار الفرعية للأسماء المعروفة ، مثل
org.freedesktop.Telepathy.Connection Manager. (أي شيء) و
org.freedesktop.reserveDevice1. (أي شيء).
ليس من المنطقي رفض مستخدم أو مجموعة داخل ملف لمستخدم أو مجموعة ؛
يمكن أن يكون رفض المستخدم / المجموعة داخل سياق سياسات = "افتراضي" أو سياق = سياسات "إلزامية" فقط.
واحد قد تحدد القاعدة مجموعات من السمات مثل send_destination و
send_interface و send_type. في هذه الحالة ، لا ينطبق الرفض إلا إذا كانت كلتا السمتين
تطابق الرسالة المرفوضة. على سبيل المثال
قد يؤدي send_destination = "foo.blah" /> إلى رفض الرسائل ذات الواجهة المحددة والمعطى
اسم الحافلة. للحصول على تأثير OR ، حدد عدة قواعد.
لا يمكنك تضمين سمتَي الإرسال والاستلام في نفس القاعدة ، نظرًا لأن "ما إذا كان ملف
يمكن إرسال الرسالة "ويتم تقييم" ما إذا كان يمكن استلامها "بشكل منفصل.
كن حذرا مع send_interface / Receiver_interface ، لأن مجال الواجهة في الرسائل
هو اختياري. على وجه الخصوص ، لا تحدد ! هذا سوف
يتسبب في حظر الرسائل التي لا تحتوي على واجهة لجميع الخدمات ، وهو أمر شبه مؤكد
ما قصدته. استخدم دائمًا قواعد النموذج:
send_destination = "org.foo.Service" />
·
ال يحتوي العنصر على الإعدادات المتعلقة بـ Security Enhanced Linux. المزيد من التفاصيل
أدناه.
·
ان يظهر عنصر أدناه عنصر ويخلق التعيين. الآن
نوع واحد فقط من الجمعيات ممكن:
هذا يعني أنه إذا طلب الاتصال امتلاك الاسم "org.freedesktop.Foobar" فإن ملف
سيكون سياق المصدر هو سياق الاتصال وسيكون السياق الهدف
"foo_t" - راجع المناقشة القصيرة لـ SELinux أدناه.
لاحظ أن السياق هنا هو السياق الهدف عند طلب اسم وليس سياق
الاتصال الذي يمتلك الاسم.
لا توجد حاليًا طريقة لتعيين اسم افتراضي لامتلاك أي اسم ، إذا أضفنا هذه الصيغة إليه
سيبدو:
إذا وجدت سببًا مفيدًا ، أخبر المطورين بذلك. الآن الإرادة الافتراضية
يكون السياق الأمني للحافلة نفسها.
إذا كان اثنان تحدد العناصر نفس الاسم ، وسيظهر العنصر لاحقًا في ملف
سيتم استخدام ملف التكوين.
·
ال عنصر لتكوين وساطة AppArmor على الناقل. يمكن أن تحتوي
سمة واحدة تحدد وضع التوسط:
الوضع الافتراضي هو "ممكّن". في وضع "التمكين" ، سيتم تنفيذ وساطة AppArmor إذا
يتوفر دعم AppArmor في النواة. إذا لم يكن متاحًا ، فسيقوم dbus-daemon
ابدأ ولكن لن تحدث وساطة AppArmor. في وضع "معطل" ، تكون وساطة AppArmor
عاجز. في الوضع "مطلوب" ، سيتم تمكين وساطة AppArmor إذا تم دعم AppArmor
متاح ، وإلا فسيرفض dbus-daemon البدء.
لا يمكن تغيير وضع توسط AppArmor للحافلة بعد بدء الحافلة. التعديل
الوضع في ملف التكوين وإرسال إشارة SIGHUP إلى البرنامج الخفي ليس له أي تأثير
في وضع الوساطة.
سيلينو
يرى http://www.nsa.gov/selinux/ للحصول على تفاصيل كاملة عن SELinux. بعض المقتطفات المفيدة:
كل موضوع (عملية) وكائن (مثل ملف ، مقبس ، كائن IPC ، إلخ) في النظام هو
تعيين مجموعة من سمات الأمان ، والمعروفة باسم سياق الأمان. أمن
يحتوي السياق على كافة سمات الأمان المرتبطة بموضوع معين أو
ذات الصلة بسياسة الأمان.
من أجل تغليف السياقات الأمنية بشكل أفضل ولتوفير كفاءة أكبر ، فإن
عادةً ما يتعامل كود تطبيق سياسة SELinux مع معرفات الأمان (SIDs) بدلاً من ذلك
من سياقات الأمان. SID هو عدد صحيح يتم تعيينه بواسطة خادم الأمان إلى ملف
سياق الأمان في وقت التشغيل.
عندما يكون قرار الأمان مطلوبًا ، يمرر رمز فرض السياسة زوجًا من معرفات الأمان (SID)
(عادةً ما يكون SID للموضوع و SID للكائن ، ولكن أحيانًا زوج من الموضوع
معرفات الأمان (SIDs) أو زوج من معرفات الأمان (SIDs) للكائن) ، وفئة أمان الكائن إلى خادم الأمان. ال
تشير فئة أمان الكائن إلى نوع الكائن ، على سبيل المثال عملية ، ملف عادي ، أ
الدليل ، ومقبس TCP ، وما إلى ذلك.
تحدد قرارات الوصول ما إذا كان يتم منح الإذن لزوج معين من معرفات الأمان أم لا
والفئة. تحتوي كل فئة كائن على مجموعة من الأذونات المرتبطة المحددة للتحكم
عمليات على الكائنات مع تلك الفئة.
يقوم D-Bus بإجراء فحوصات أمان SELinux في مكانين.
أولاً ، في أي وقت يتم توجيه رسالة من اتصال إلى اتصال آخر ، الناقل
سيتحقق البرنامج الخفي من الأذونات مع سياق الأمان لأول اتصال كمصدر ،
السياق الأمني للاتصال الثاني كهدف ، وطلب فئة الكائن "dbus"
إذن "send_msg".
إذا لم يكن سياق الأمان متاحًا للاتصال (مستحيل عند استخدام مجال UNIX
sockets) ، فإن السياق الهدف المستخدم هو سياق البرنامج الخفي للناقل نفسه. هنالك
لا توجد طريقة حاليًا لتغيير هذا الإعداد الافتراضي ، لأننا نفترض أن نطاق UNIX فقط
سيتم استخدام مآخذ التوصيل للاتصال بالحافلة على مستوى النظام. إذا تغير هذا ، فربما نضيف
طريقة لتعيين سياق الاتصال الافتراضي.
ثانيًا ، في أي وقت يطلب فيه الاتصال امتلاك اسم ، سيتحقق البرنامج الخفي من الحافلة من الأذونات
مع سياق الأمان الخاص بالاتصال كمصدر ، فإن سياق الأمان المحدد لـ
الاسم في ملف التكوين كهدف ، فئة الكائن "dbus" وطلب الإذن
"get_svc".
يتم تحديد سياق الأمان لاسم الناقل بامتداد العنصر الموصوف
في وقت سابق في هذا المستند. إذا كان الاسم لا يحتوي على سياق أمان مرتبط بامتداد
ملف التكوين ، سيتم استخدام سياق الأمان لخادم الناقل نفسه.
ملابس
يتم تخزين سياق حجز AppArmor عندما تتصل التطبيقات بالحافلة. ال
يتكون سياق الحبس من تسمية ووضع الحبس. عندما قرار أمني
مطلوبًا ، يستخدم البرنامج الخفي سياق الحجز للاستعلام عن سياسة AppArmor
تحديد ما إذا كان يجب السماح بالإجراء أو رفضه وما إذا كان يجب مراجعة الإجراء.
يقوم البرنامج الخفي بإجراء فحوصات أمان AppArmor في ثلاثة أماكن.
أولاً ، في أي وقت يتم توجيه رسالة من اتصال إلى اتصال آخر ، الناقل
سيتحقق البرنامج الخفي من الأذونات مع تسمية الاتصال الأول كمصدر أو تسمية
و / أو اسم الاتصال الخاص بالاتصال الثاني كهدف ، إلى جانب اسم الناقل ، و
اسم المسار واسم الواجهة واسم العضو. رسائل الرد ، مثل method_return
ورسائل الخطأ ، مسموحًا ضمنيًا إذا كانت ردًا على رسالة بها
تم السماح بالفعل.
ثانيًا ، في أي وقت يطلب فيه الاتصال امتلاك اسم ، سيتحقق البرنامج الخفي من الحافلة من الأذونات
مع تسمية الاتصال كمصدر ، والاسم المطلوب كهدف ، جنبًا إلى جنب مع
اسم الحافلة.
ثالثًا ، في أي وقت يحاول الاتصال التنصت ، سيتحقق البرنامج الخفي من الحافلة من الأذونات
مع تسمية الاتصال كمصدر ، إلى جانب اسم الناقل.
لا يتم تخزين قواعد AppArmor لوساطة الناقل في ملفات تكوين الناقل. هم
المخزنة في ملف تعريف AppArmor الخاص بالتطبيق. لطفا أنظر أبارمور د(5) لمزيد من التفاصيل.
تفكيك
إذا كنت تحاول معرفة إلى أين تتجه رسائلك أو سبب عدم وصولك إليها
الرسائل ، هناك العديد من الأشياء التي يمكنك تجربتها.
تذكر أن ناقل النظام مغلق بشدة وإذا لم تقم بتثبيت ملف
ملف سياسة الأمان للسماح لرسالتك بالمرور ، فلن يعمل. لحافلة الجلسة ،
هذا ليس مصدر قلق.
إن أبسط طريقة لمعرفة ما يحدث على متن الحافلة هي تشغيل ملف شاشة dbus
البرنامج الذي يأتي مع حزمة D-Bus. يمكنك أيضًا إرسال رسائل اختبار باستخدام
إرسال دبس. هذه البرامج لها صفحات الرجل الخاصة بها.
إذا كنت تريد معرفة ما يفعله البرنامج الخفي نفسه ، فيمكنك التفكير في تشغيل ملف
نسخة من البرنامج الخفي لاختباره. سيسمح لك ذلك بوضع البرنامج الخفي تحت ملف
مصحح الأخطاء ، أو تشغيله بإخراج مطول ، دون العبث بجلستك ونظامك الحقيقيين
شياطين.
لتشغيل نسخة اختبارية منفصلة من البرنامج الخفي ، على سبيل المثال ، يمكنك فتح Terminal واكتب:
DBUS_VERBOSE = 1 dbus-daemon - جلسة - طباعة عنوان
ستتم طباعة عنوان البرنامج الخفي للاختبار عند بدء البرنامج الخفي. سوف تحتاج إلى
انسخ والصق هذا العنوان واستخدمه كقيمة لـ DBUS_SESSION_BUS_ADDRESS
متغير البيئة عند تشغيل التطبيقات التي تريد اختبارها. هذا سوف يسبب
تلك التطبيقات للاتصال بناقل الاختبار الخاص بك بدلاً من DBUS_SESSION_BUS_ADDRESS من
حافلات جلستك الحقيقية.
DBUS_VERBOSE = 1 لن يكون له أي تأثير ما لم يتم تجميع نسختك من D-Bus مع مطول
وضع تمكين. لا ينصح بهذا في عمليات إنشاء الإنتاج نظرًا لتأثير الأداء. أنت
قد تحتاج إلى إعادة إنشاء D-Bus إذا لم يتم إنشاء نسختك مع وضع التصحيح في الاعتبار. (DBUS_VERBOSE
يؤثر أيضًا على مكتبة D-Bus وبالتالي على التطبيقات التي تستخدم D-Bus ؛ قد يكون من المفيد أن نرى
إخراج مطول من جانب العميل ومن البرنامج الخفي.)
إذا كنت تريد أن تصبح خياليًا ، فيمكنك إنشاء تكوين ناقل مخصص لحافلة الاختبار الخاصة بك (انظر
ملفات session.conf و system.conf التي تحدد التكوينات الافتراضية لملفات
مثال). سيسمح لك هذا بتحديد دليل مختلف لملفات الخدمة
مثال.
استخدم dbus-daemon عبر الإنترنت باستخدام خدمات onworks.net