Ini adalah perintah dbus-daemon yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
dbus-daemon - Pesan bus daemon
RINGKASAN
dbus-daemon
dbus-daemon [--versi] [--sesi] [--sistem] [--config-file=FILE]
[--alamat-cetak [= DESKRIPSI]] [--cetak-pid [= DESKRIPSI]] [--garpu]
DESKRIPSI
dbus-daemon adalah daemon bus pesan D-Bus. Lihat http://www.freedesktop.org/software/dbus/
untuk informasi lebih lanjut tentang gambaran besar. D-Bus adalah perpustakaan pertama yang menyediakan
komunikasi satu-ke-satu antara dua aplikasi; dbus-daemon adalah aplikasi yang
menggunakan perpustakaan ini untuk mengimplementasikan daemon bus pesan. Beberapa program terhubung ke
daemon bus pesan dan dapat saling bertukar pesan.
Ada dua contoh bus pesan standar: bus pesan seluruh sistem (dipasang di
banyak sistem sebagai layanan init "messagebus") dan bus pesan sesi-per-pengguna-login
(dimulai setiap kali pengguna masuk). dbus-daemon digunakan untuk kedua contoh ini, tetapi
dengan file konfigurasi yang berbeda.
Opsi --session sama dengan "--config-file=/usr/share/dbus-1/session.conf"dan
opsi --system setara dengan "--config-file=/usr/share/dbus-1/system.conf". Oleh
membuat file konfigurasi tambahan dan menggunakan opsi --config-file, tambahan
Daemon bus pesan tujuan khusus dapat dibuat.
Daemon seluruh sistem biasanya diluncurkan oleh skrip init, yang secara standar disebut dengan sederhana
"bus pesan".
Daemon seluruh sistem sebagian besar digunakan untuk menyiarkan acara sistem, seperti perubahan pada
antrian printer, atau menambah/menghapus perangkat.
Daemon per sesi digunakan untuk berbagai komunikasi antarproses di antara desktop
aplikasi (namun, tidak terikat dengan X atau GUI dengan cara apa pun).
SIGHUP akan menyebabkan daemon D-Bus memuat ulang SEBAGIAN file konfigurasinya dan mem-flush
cache informasi pengguna/grupnya. Beberapa perubahan konfigurasi akan membutuhkan menendang semua
aplikasi dari bus; jadi mereka hanya akan berlaku jika Anda me-restart daemon. Perubahan kebijakan
harus berlaku dengan SIGHUP.
PILIHAN
Opsi berikut didukung:
--config-file=FILE
Gunakan file konfigurasi yang diberikan.
--garpu
Paksa bus pesan untuk bercabang dan menjadi daemon, bahkan jika file konfigurasi melakukannya
tidak menentukan bahwa itu harus. Dalam sebagian besar konteks, file konfigurasi sudah mendapatkan ini
benar, meskipun. Opsi ini tidak didukung di Windows.
--tidak ada garpu
Paksa bus pesan untuk tidak bercabang dan menjadi daemon, bahkan jika file konfigurasi
menentukan bahwa itu harus. Di Windows, dbus-daemon tidak pernah bercabang, jadi opsi ini adalah
diperbolehkan tetapi tidak melakukan apa-apa.
--print-address[=DESKRIPTOR]
Cetak alamat bus pesan ke output standar, atau ke file yang diberikan
deskriptor. Ini digunakan oleh program yang meluncurkan bus pesan.
--print-pid[=DESKRIPTOR]
Cetak ID proses bus pesan ke output standar, atau ke file yang diberikan
deskriptor. Ini digunakan oleh program yang meluncurkan bus pesan.
--sidang
Gunakan file konfigurasi standar untuk bus pesan per sesi masuk.
--sistem
Gunakan file konfigurasi standar untuk bus pesan seluruh sistem.
--Versi: kapan
Cetak versi daemon.
--mengintrospeksi
Cetak informasi introspeksi untuk semua antarmuka internal D-Bus.
--alamat[=ALAMAT]
Setel alamat untuk mendengarkan. Opsi ini mengesampingkan alamat yang dikonfigurasi di
file konfigurasi.
--systemd-aktivasi
Aktifkan aktivasi layanan gaya systemd. Hanya berguna dalam hubungannya dengan systemd
sistem dan manajer sesi di Linux.
--nopidfile
Jangan menulis file PID meskipun file tersebut dikonfigurasi dalam file konfigurasi.
KONFIGURASI FILE
Daemon bus pesan memiliki file konfigurasi yang khusus untuk tertentu
aplikasi. Misalnya, satu file konfigurasi mungkin mengatur bus pesan menjadi
bus pesan seluruh sistem, sementara yang lain mungkin mengaturnya menjadi bus sesi per-pengguna-login.
File konfigurasi juga menetapkan batas sumber daya, parameter keamanan, dan sebagainya
sebagainya
File konfigurasi bukan bagian dari spesifikasi interoperabilitas apa pun dan mundur
kompatibilitas tidak dijamin; dokumen ini adalah dokumentasi, bukan spesifikasi.
Pengaturan bus pesan per sesi dan seluruh sistem standar dikonfigurasi dalam file
"/usr/share/dbus-1/system.conf"Dan"/usr/share/dbus-1/session.conf". File-file ini biasanya
a system-local.conf atau session-local.conf di /etc/dbus-1; Anda dapat menempatkan lokal
menimpa file tersebut untuk menghindari modifikasi file konfigurasi utama.
File konfigurasi adalah dokumen XML. Itu harus memiliki deklarasi doctype berikut:
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
Elemen berikut mungkin ada dalam file konfigurasi.
·
elemen akar.
·
Jenis bus pesan yang terkenal. Nilai yang diketahui saat ini adalah "sistem" dan "sesi";
jika nilai lain ditetapkan, mereka harus ditambahkan ke spesifikasi D-Bus, atau
spasi nama. Yang terakhir elemen "menang" (nilai sebelumnya diabaikan). elemen ini
hanya mengontrol variabel lingkungan spesifik bus pesan mana yang diaktifkan
klien. Sebagian besar kebijakan yang membedakan bus sesi dari bus sistem adalah
dikendalikan dari elemen lain dalam file konfigurasi.
Jika jenis bus pesan yang terkenal adalah "sesi", maka DBUS_STARTER_BUS_TYPE
variabel lingkungan akan disetel ke "sesi" dan lingkungan DBUS_SESSION_BUS_ADDRESS
variabel akan diatur ke alamat bus sesi. Demikian juga jika jenis
bus pesan adalah "sistem", maka variabel lingkungan DBUS_STARTER_BUS_TYPE akan disetel
ke "sistem" dan variabel lingkungan DBUS_SESSION_BUS_ADDRESS akan disetel ke
alamat bus sistem (yang biasanya sudah diketahui dengan baik).
Contoh: sidang
·
Sertakan file nama file.conf pada saat ini. Jika nama filenya adalah
relatif, itu terletak relatif terhadap file konfigurasi yang melakukan termasuk.
memiliki atribut opsional "ignore_missing=(yes|no)" yang defaultnya adalah "no" jika
tidak tersedia. Atribut ini mengontrol apakah itu kesalahan fatal untuk file yang disertakan
mangkir.
·
Sertakan semua file di makanan pada saat ini. File dalam direktori
termasuk dalam urutan yang tidak ditentukan. Hanya file yang diakhiri dengan ".conf" yang disertakan.
Ini dimaksudkan untuk memungkinkan perpanjangan bus sistem dengan paket-paket tertentu. Sebagai contoh,
jika CUPS ingin dapat mengirimkan pemberitahuan perubahan antrian printer, itu bisa
instal file ke /usr/share/dbus-1/system.d atau /etc/dbus-1/system.d yang memungkinkan semua aplikasi
untuk menerima pesan ini dan mengizinkan pengguna daemon printer untuk mengirimnya.
·
Akun pengguna yang harus dijalankan oleh daemon, baik sebagai nama pengguna atau UID. Jika dasmon
tidak dapat mengubah ke UID ini saat startup, itu akan keluar. Jika elemen ini tidak ada,
daemon tidak akan mengubah atau peduli dengan UID-nya.
Yang terakhir entri dalam file "menang", yang lain diabaikan.
Pengguna diubah setelah bus menyelesaikan inisialisasi. Jadi soket dll. akan menjadi
dibuat sebelum mengubah pengguna, tetapi tidak ada data yang akan dibaca dari klien sebelum mengubah pengguna.
Ini berarti soket dan file PID dapat dibuat di lokasi yang memerlukan root
keistimewaan untuk menulis.
·
Jika ada, daemon bus menjadi daemon nyata (bercabang ke latar belakang, dll.). Ini
umumnya digunakan daripada opsi baris perintah --fork.
·
Jika ada, daemon bus mempertahankan umask aslinya saat melakukan forking. Ini mungkin berguna untuk
menghindari mempengaruhi perilaku proses anak.
·
Jika ada, daemon bus akan masuk ke syslog.
·
Jika ada, daemon bus akan menulis pidnya ke file yang ditentukan. --nopidfile
opsi baris perintah lebih diutamakan daripada pengaturan ini.
·
Jika ada, koneksi yang diautentikasi menggunakan mekanisme ANONIM akan menjadi
berwenang untuk terhubung. Opsi ini tidak memiliki efek praktis kecuali mekanisme ANONIM
juga telah diaktifkan menggunakan elemen, dijelaskan di bawah ini.
·
Tambahkan alamat yang harus didengarkan oleh bus. Alamatnya dalam format D-Bus standar
yang berisi nama transport ditambah kemungkinan parameter/opsi.
Contoh: unix:path=/tmp/foo
Contoh: tcp:host=localhost,port=1234
Jika ada beberapa elemen, kemudian bus mendengarkan di beberapa alamat. NS
bus akan memberikan alamatnya ke layanan awal atau pihak berkepentingan lainnya dengan yang terakhir
alamat yang diberikan dalam pertama. Artinya, aplikasi akan mencoba terhubung ke yang terakhir
alamat dulu.
soket tcp dapat menerima alamat IPv4, alamat IPv6 atau nama host. Jika nama host teratasi
ke beberapa alamat, server akan mengikat semuanya. Keluarga=ipv4 atau keluarga=ipv6
opsi dapat digunakan untuk memaksanya mengikat ke subset alamat
Contoh: tcp:host=localhost,port=0,family=ipv4
Kasus khusus menggunakan nomor port nol (atau menghilangkan port), yang berarti untuk
pilih port yang tersedia yang dipilih oleh sistem operasi. Nomor port yang dipilih dapat berupa
diperoleh dengan parameter baris perintah --print-address dan akan ada di lainnya
kasus di mana server melaporkan alamatnya sendiri, seperti ketika DBUS_SESSION_BUS_ADDRESS adalah
ditetapkan.
Contoh: tcp:host=localhost,port=0
Alamat tcp/nonce-tcp juga mengizinkan opsi bind=hostname, digunakan dalam alamat yang dapat didengarkan untuk
konfigurasikan antarmuka di mana server akan mendengarkan: baik nama host adalah IP
alamat salah satu antarmuka mesin lokal (paling sering 127.0.0.1), nama DNS
yang memutuskan ke salah satu alamat IP tersebut, '0.0.0.0' untuk mendengarkan di semua antarmuka IPv4
secara bersamaan, atau '::' untuk mendengarkan semua antarmuka IPv4 dan IPv6 secara bersamaan (jika
didukung oleh OS). Jika tidak ditentukan, nilai defaultnya sama dengan "host".
Contoh: tcp:host=localhost,bind=0.0.0.0,port=0
·
Daftar mekanisme otorisasi yang diizinkan. Jika elemen ini tidak ada, maka semua diketahui
mekanisme diperbolehkan. Jika ada beberapa elemen, semua mekanisme yang terdaftar
diijinkan. Urutan mekanisme yang terdaftar tidak berarti.
Contoh: LUAR
Contoh: DBUS_COOKIE_SHA1
·
Menambahkan direktori untuk memindai file .service. Direktori dipindai dimulai dengan
pertama kali muncul di file konfigurasi (file .service pertama ditemukan yang menyediakan
layanan tertentu akan digunakan).
File layanan memberi tahu bus cara memulai program secara otomatis. Mereka terutama digunakan
dengan bus per sesi pengguna, bukan bus seluruh sistem.
·
setara dengan menentukan serangkaian
elemen untuk setiap direktori data dalam "Spesifikasi Direktori Basis XDG" dengan
subdirektori "dbus-1/services", jadi misalnya "/usr/share/dbus-1/services" akan menjadi
di antara direktori yang dicari.
"Spesifikasi Direktori Dasar XDG" dapat ditemukan di
http://freedesktop.org/wiki/Standards/basedir-spec jika belum bergerak, jika tidak, coba
mesin pencari favorit.
NS opsi hanya relevan untuk bus per sesi pengguna
daemon yang didefinisikan di /etc/dbus-1/session.conf. Menempatkannya di file konfigurasi lainnya
mungkin akan menjadi omong kosong.
·
menentukan direktori aktivasi seluruh sistem standar
yang harus dicari untuk file layanan. Opsi ini default ke
/usr/share/dbus-1/sistem-layanan.
NS opsi hanya relevan dengan daemon bus per sistem
didefinisikan di /usr/share/dbus-1/system.conf. Menempatkannya di file konfigurasi lain akan
mungkin menjadi omong kosong.
·
menentukan pembantu setuid yang digunakan untuk meluncurkan daemon sistem dengan
pengguna alternatif. Biasanya ini harus menjadi dbus-daemon-launch-helper yang dapat dieksekusi di
terletak di libexec.
NS opsi hanya relevan dengan daemon bus per-sistem yang didefinisikan dalam
/usr/share/dbus-1/system.conf. Menempatkannya di file konfigurasi lain mungkin akan
menjadi omong kosong.
·
menetapkan batas sumber daya. Sebagai contoh:
64
512
Atribut nama adalah wajib. Nama batas yang tersedia adalah:
"max_incoming_bytes" : ukuran total dalam byte pesan
masuk dari satu koneksi
"max_incoming_unix_fds" : jumlah total unix fds pesan
masuk dari satu koneksi
"max_outgoing_bytes" : ukuran total dalam byte pesan
antri untuk satu koneksi
"max_outgoing_unix_fds" : jumlah total unix fds pesan
antri untuk satu koneksi
"max_message_size" : ukuran maksimal dari satu pesan di
byte
"max_message_unix_fds" : max unix fds dari satu pesan
"service_start_timeout" : milidetik (seribu) sampai
layanan yang dimulai harus terhubung
"auth_timeout" : milidetik (seribu) a
koneksi diberikan kepada
mengotentikasi
"pending_fd_timeout" : milidetik (seribu) a
fd diberikan untuk ditransmisikan ke
dbus-daemon sebelum memutuskan sambungan
koneksi
"max_completed_connections" : jumlah maksimum koneksi yang diautentikasi
"max_incomplete_connections" : jumlah maksimal yang tidak diautentikasi
koneksi
"max_connections_per_user" : jumlah maksimum koneksi yang diselesaikan dari
pengguna yang sama
"max_pending_service_starts" : jumlah maksimum layanan yang diluncurkan dalam
kemajuan pada saat yang sama
"max_names_per_connection" : jumlah maksimal nama tunggal
koneksi dapat memiliki
"max_match_rules_per_connection": jumlah maksimum aturan kecocokan untuk satu
koneksi
"max_replies_per_connection" : jumlah maksimum metode tertunda
balasan per koneksi
(jumlah panggilan dalam proses)
"reply_timeout" : milidetik (seribu)
sampai panggilan metode habis
Ukuran antrian masuk/keluar maksimum memungkinkan pesan baru untuk diantrekan jika satu byte tersisa
di bawah maks. Jadi Anda sebenarnya dapat melebihi maks dengan max_message_size.
max_completed_connections dibagi max_connections_per_user adalah jumlah pengguna yang
dapat bekerja sama untuk menolak layanan semua pengguna lain dengan menggunakan semua koneksi di
bus seluruh sistem.
Batas biasanya hanya menarik di bus seluruh sistem, bukan bus sesi pengguna.
·
NS elemen mendefinisikan kebijakan keamanan untuk diterapkan ke set tertentu
koneksi ke bus. Sebuah kebijakan terdiri dari dan elemen. Kebijakan adalah
biasanya digunakan dengan bus seluruh sistem; mereka analog dengan firewall karena mereka mengizinkan
lalu lintas yang diharapkan dan mencegah lalu lintas yang tidak diharapkan.
Saat ini, bus sistem memiliki kebijakan penolakan default untuk mengirim panggilan metode dan memiliki
nama bis. Segala sesuatu yang lain, khususnya membalas pesan, menerima cek, dan sinyal memiliki
kebijakan izin default.
Secara umum, yang terbaik adalah menjaga layanan sistem sebagai program kecil yang ditargetkan yang berjalan di
proses mereka sendiri dan memberikan satu nama bus. Kemudian, yang dibutuhkan hanyalah
aturan untuk izin "sendiri" untuk membiarkan proses mengklaim nama bus, dan a
aturan "send_destination" untuk mengizinkan lalu lintas dari beberapa atau semua uid ke layanan Anda.
NS elemen memiliki salah satu dari empat atribut:
konteks="(default|wajib)"
at_console="(benar|salah)"
pengguna = "nama pengguna atau id pengguna"
group="nama grup atau gid"
Kebijakan diterapkan pada koneksi sebagai berikut:
- semua kebijakan konteks="default" diterapkan
- semua kebijakan grup="grup pengguna koneksi" diterapkan
dalam urutan yang tidak ditentukan
- semua kebijakan pengguna = "pengguna auth koneksi" diterapkan
dalam urutan yang tidak ditentukan
- semua kebijakan at_console="true" diterapkan
- semua kebijakan at_console="false" diterapkan
- semua kebijakan konteks="wajib" diterapkan
Kebijakan yang diterapkan nanti akan menggantikan kebijakan yang diterapkan sebelumnya, saat kebijakan tumpang tindih.
Beberapa kebijakan dengan pengguna/grup/konteks yang sama diterapkan sesuai urutan kemunculannya
file konfigurasi.
A elemen muncul di bawah a elemen dan melarang beberapa tindakan. NS
elemen membuat pengecualian untuk sebelumnya pernyataan, dan berfungsi seperti tetapi
dengan makna terbalik.
Atribut yang mungkin dari elemen-elemen ini adalah:
send_interface="nama_antarmuka"
send_member="metode_atau_nama_sinyal"
send_error="nama_kesalahan"
send_destination="nama"
send_type="metode_panggilan" | "metode_pengembalian" | "sinyal" | "kesalahan"
send_path="/path/nama"
terima_interface="nama_antarmuka"
menerima_member="metode_atau_nama_sinyal"
menerima_error="error_name"
terima_pengirim="nama"
menerima_type="metode_panggilan" | "metode_pengembalian" | "sinyal" | "kesalahan"
menerima_path="/path/nama"
send_requested_reply="benar" | "Salah"
terima_requested_reply="benar" | "Salah"
menguping="benar" | "Salah"
sendiri = "nama"
own_prefix="nama"
pengguna = "nama pengguna"
grup = "nama grup"
contoh:
NS atribut elemen menentukan apakah penolakan "cocok" dengan tindakan tertentu.
Jika cocok, tindakan ditolak (kecuali aturan selanjutnya dalam file konfigurasi mengizinkannya).
aturan send_destination dan accept_sender berarti bahwa pesan tidak boleh dikirim ke atau
diterima dari *pemilik* nama yang diberikan, bukan karena mereka tidak boleh dikirim *ke nama itu*.
Artinya, jika koneksi memiliki layanan A, B, C, dan pengiriman ke A ditolak, pengiriman ke B
atau C juga tidak akan berfungsi.
Atribut send_* dan accept_* lainnya murni tekstual/berdasarkan nilai yang cocok dengan
bidang yang diberikan di header pesan.
"Menguping" terjadi ketika aplikasi menerima pesan yang secara eksplisit
ditujukan ke nama yang tidak dimiliki aplikasi, atau merupakan balasan untuk pesan semacam itu.
Dengan demikian, penyadapan hanya berlaku untuk pesan yang ditujukan ke layanan dan balasan ke
pesan tersebut (yaitu tidak berlaku untuk sinyal).
Untuk , eavesdrop="true" menunjukkan bahwa aturan cocok bahkan saat menguping.
eavesdrop="false" adalah default dan berarti bahwa aturan hanya mengizinkan pesan untuk masuk
penerima tertentu mereka. Untuk , eavesdrop="true" menunjukkan bahwa aturan tersebut cocok
hanya saat menguping. eavesdrop="false" adalah default untuk juga, tapi ini dia
berarti aturan itu selalu berlaku, bahkan saat tidak menguping. Atribut menguping
hanya dapat digabungkan dengan aturan kirim dan terima (dengan atribut send_* dan accept_*).
Atribut [send|receive]_requested_reply bekerja mirip dengan atribut eavesdrop.
Ini mengontrol apakah atau cocok dengan jawaban yang diharapkan (sesuai dengan
pesan panggilan metode sebelumnya). Atribut ini hanya masuk akal untuk membalas pesan
(kesalahan dan pengembalian metode), dan diabaikan untuk jenis pesan lainnya.
Untuk , [send|receive]_requested_reply="true" adalah default dan menunjukkan bahwa hanya
balasan yang diminta diperbolehkan oleh aturan. [send|receive]_requested_reply="false" artinya
bahwa aturan mengizinkan balasan apa pun meskipun tidak terduga.
Untuk , [send|receive]_requested_reply="false" adalah default tetapi menunjukkan bahwa
aturan cocok hanya ketika balasan tidak diminta. [kirim|terima]_requested_reply="benar"
menunjukkan bahwa aturan selalu berlaku, terlepas dari status balasan yang tertunda.
penolakan pengguna dan grup berarti bahwa pengguna atau grup tertentu mungkin tidak terhubung ke pesan
bis.
Untuk "nama", "nama pengguna", "nama grup", dll. karakter "*" dapat diganti, artinya
"setiap." Gumpalan kompleks seperti "foo.bar.*" tidak diizinkan untuk saat ini karena akan berfungsi
menerapkan dan mungkin tetap mendorong keamanan yang ceroboh.
memungkinkan Anda untuk memiliki nama "ab" atau nama apa pun yang pertama
elemen yang dipisahkan titik adalah "ab": khususnya, Anda dapat memiliki "abc" atau "abcd", tetapi tidak
"a.bc" atau "ac". Ini berguna ketika layanan seperti Telepati dan ReserveDevice mendefinisikan a
arti untuk subpohon dari nama-nama terkenal, seperti
org.freedesktop.Telepathy.ConnectionManager.(apa saja) dan
org.freedesktop.ReserveDevice1.(apa saja).
Tidak masuk akal untuk menolak pengguna atau grup di dalam a untuk pengguna atau grup;
penolakan pengguna/grup hanya dapat berada di dalam kebijakan konteks="default" atau konteks="wajib".
Tunggal aturan dapat menentukan kombinasi atribut seperti send_destination dan
send_interface dan send_type. Dalam hal ini, penolakan hanya berlaku jika kedua atribut
cocok dengan pesan yang ditolak. misalnya
send_destination="foo.blah"/> akan menolak pesan dengan antarmuka yang diberikan DAN yang diberikan
nama bis. Untuk mendapatkan efek ATAU Anda menentukan beberapa aturan.
Anda tidak dapat menyertakan atribut send_ dan accept_ pada aturan yang sama, karena "apakah
pesan dapat dikirim" dan "apakah dapat diterima" dievaluasi secara terpisah.
Hati-hati dengan send_interface/receive_interface, karena bidang antarmuka dalam pesan
adalah opsional. Secara khusus, JANGAN tentukan ! Ini akan
menyebabkan pesan tanpa antarmuka diblokir untuk semua layanan, yang hampir pasti tidak
apa yang Anda maksudkan. Selalu gunakan aturan formulir:
send_destination="org.foo.Service"/>
·
NS elemen berisi pengaturan yang terkait dengan Security Enhanced Linux. Keterangan lebih lanjut
di bawah.
·
NS elemen muncul di bawah elemen dan membuat pemetaan. Sekarang
hanya satu jenis asosiasi yang mungkin:
Ini berarti bahwa jika koneksi meminta untuk memiliki nama "org.freedesktop.Foobar" maka
konteks sumber akan menjadi konteks koneksi dan konteks target akan menjadi
"foo_t" - lihat diskusi singkat tentang SELinux di bawah ini.
Catatan, konteks di sini adalah konteks target saat meminta nama, BUKAN konteks
koneksi yang memiliki nama tersebut.
Saat ini tidak ada cara untuk menetapkan default untuk memiliki nama apa pun, jika kita menambahkan sintaks ini
akan terlihat seperti:
Jika Anda menemukan alasan ini berguna, beri tahu pengembang. Saat ini default akan
menjadi konteks keamanan bus itu sendiri.
Jika dua elemen menentukan nama yang sama, elemen muncul kemudian di
file konfigurasi yang akan digunakan.
·
NS elemen digunakan untuk mengonfigurasi mediasi AppArmor di bus. Itu bisa berisi
satu atribut yang menentukan mode mediasi:
Mode default adalah "diaktifkan". Dalam mode "diaktifkan", mediasi AppArmor akan dilakukan jika
Dukungan AppArmor tersedia di kernel. Jika tidak tersedia, dbus-daemon akan
mulai tetapi mediasi AppArmor tidak akan terjadi. Dalam mode "dinonaktifkan", mediasi AppArmor adalah
dengan disabilitas. Dalam mode "wajib", mediasi AppArmor akan diaktifkan jika dukungan AppArmor adalah
tersedia, jika tidak, dbus-daemon akan menolak untuk memulai.
Mode mediasi AppArmor bus tidak dapat diubah setelah bus dimulai. Memodifikasi
mode dalam file konfigurasi dan mengirim sinyal SIGHUP ke daemon tidak berpengaruh
pada mode mediasi.
SELINUX
Lihat http://www.nsa.gov/selinux/ untuk detail lengkap tentang SELinux. Beberapa kutipan yang bermanfaat:
Setiap subjek (proses) dan objek (misalnya file, soket, objek IPC, dll) dalam sistem adalah
menetapkan kumpulan atribut keamanan, yang dikenal sebagai konteks keamanan. Sebuah keamanan
konteks berisi semua atribut keamanan yang terkait dengan subjek tertentu atau
objek yang relevan dengan kebijakan keamanan.
Untuk mengenkapsulasi konteks keamanan dengan lebih baik dan untuk memberikan efisiensi yang lebih besar,
kode penegakan kebijakan SELinux biasanya menangani pengenal keamanan (SID) bukan
daripada konteks keamanan. SID adalah bilangan bulat yang dipetakan oleh server keamanan ke a
konteks keamanan saat runtime.
Ketika keputusan keamanan diperlukan, kode penegakan kebijakan melewati sepasang SID
(biasanya SID subjek dan SID objek, tetapi terkadang sepasang subjek
SID atau sepasang SID objek), dan kelas keamanan objek ke server keamanan. NS
kelas keamanan objek menunjukkan jenis objek, misalnya proses, file biasa, a
direktori, soket TCP, dll.
Keputusan akses menentukan apakah izin diberikan atau tidak untuk sepasang SID tertentu
dan kelas. Setiap kelas objek memiliki satu set izin terkait yang ditentukan untuk dikontrol
operasi pada objek dengan kelas itu.
D-Bus melakukan pemeriksaan keamanan SELinux di dua tempat.
Pertama, setiap kali pesan dirutekan dari satu koneksi ke koneksi lain, bus
daemon akan memeriksa izin dengan konteks keamanan koneksi pertama sebagai sumber,
konteks keamanan koneksi kedua sebagai target, kelas objek "dbus" dan diminta
izin "send_msg".
Jika konteks keamanan tidak tersedia untuk koneksi (tidak mungkin saat menggunakan domain UNIX
sockets), maka konteks target yang digunakan adalah konteks daemon bus itu sendiri. Ada
saat ini tidak ada cara untuk mengubah default ini, karena kami mengasumsikan bahwa hanya domain UNIX
soket akan digunakan untuk menghubungkan ke bus seluruh sistem. Jika ini berubah, kami mungkin akan menambahkan
cara untuk mengatur konteks koneksi default.
Kedua, setiap kali koneksi meminta untuk memiliki nama, daemon bus akan memeriksa izin
dengan konteks keamanan koneksi sebagai sumber, konteks keamanan ditentukan untuk
nama dalam file konfigurasi sebagai target, kelas objek "dbus" dan izin yang diminta
"memperoleh_svc".
Konteks keamanan untuk nama bus ditentukan dengan elemen dijelaskan
sebelumnya dalam dokumen ini. Jika sebuah nama tidak memiliki konteks keamanan yang terkait di
file konfigurasi, konteks keamanan daemon bus itu sendiri akan digunakan.
PERLENGKAPAN
Konteks kurungan AppArmor disimpan saat aplikasi terhubung ke bus. NS
konteks kurungan terdiri dari label dan mode kurungan. Ketika keputusan keamanan
diperlukan, daemon menggunakan konteks kurungan untuk menanyakan kebijakan AppArmor untuk
menentukan apakah tindakan tersebut harus diizinkan atau ditolak dan apakah tindakan tersebut harus diaudit.
Daemon melakukan pemeriksaan keamanan AppArmor di tiga tempat.
Pertama, setiap kali pesan dirutekan dari satu koneksi ke koneksi lain, bus
daemon akan memeriksa izin dengan label koneksi pertama sebagai sumber, label
dan/atau nama koneksi dari koneksi kedua sebagai target, bersama dengan nama bus,
nama jalur, nama antarmuka, dan nama anggota. Balas pesan, seperti method_return
dan pesan kesalahan, secara implisit diperbolehkan jika mereka menanggapi pesan yang memiliki
sudah diizinkan.
Kedua, setiap kali koneksi meminta untuk memiliki nama, daemon bus akan memeriksa izin
dengan label koneksi sebagai sumber, nama yang diminta sebagai target, bersama dengan
nama bis.
Ketiga, setiap kali koneksi mencoba menguping, daemon bus akan memeriksa izin
dengan label koneksi sebagai sumber, bersama dengan nama bus.
Aturan AppArmor untuk mediasi bus tidak disimpan dalam file konfigurasi bus. Mereka
disimpan dalam profil AppArmor aplikasi. Silahkan lihat pakaian.d(5) lebih lanjut.
DEBUGING
Jika Anda mencoba mencari tahu ke mana arah pesan Anda atau mengapa Anda tidak menerima
pesan, ada beberapa hal yang dapat Anda coba.
Ingatlah bahwa bus sistem terkunci rapat dan jika Anda belum menginstal a
file kebijakan keamanan untuk mengizinkan pesan Anda lewat, itu tidak akan berfungsi. Untuk bus sesi,
ini tidak menjadi perhatian.
Cara paling sederhana untuk mengetahui apa yang terjadi di bus adalah dengan menjalankan dbus-monitor
program, yang disertakan dengan paket D-Bus. Anda juga dapat mengirim pesan uji dengan
dbus-kirim. Program-program ini memiliki halaman manualnya sendiri.
Jika Anda ingin tahu apa yang dilakukan daemon itu sendiri, Anda dapat mempertimbangkan untuk menjalankan yang terpisah
salinan daemon untuk diuji. Ini akan memungkinkan Anda untuk meletakkan daemon di bawah a
debugger, atau jalankan dengan keluaran verbose, tanpa mengacaukan sesi dan sistem Anda yang sebenarnya
daemon.
Untuk menjalankan salinan uji daemon yang terpisah, misalnya Anda dapat membuka terminal dan mengetik:
DBUS_VERBOSE=1 dbus-daemon --session --print-address
Alamat daemon pengujian akan dicetak ketika daemon dimulai. Kamu akan membutuhkan
salin dan tempel alamat ini dan gunakan sebagai nilai DBUS_SESSION_BUS_ADDRESS
variabel lingkungan saat Anda meluncurkan aplikasi yang ingin Anda uji. Ini akan menyebabkan
aplikasi tersebut untuk terhubung ke bus uji Anda alih-alih DBUS_SESSION_BUS_ADDRESS dari
bus sesi Anda yang sebenarnya.
DBUS_VERBOSE=1 tidak akan memiliki EFEK kecuali salinan D-Bus Anda dikompilasi dengan verbose
modus diaktifkan. Ini tidak direkomendasikan dalam build produksi karena dampak kinerja. Anda
mungkin perlu membangun kembali D-Bus jika salinan Anda tidak dibuat dengan mempertimbangkan debugging. (DBUS_VERBOSE
juga mempengaruhi perpustakaan D-Bus dan dengan demikian aplikasi yang menggunakan D-Bus; mungkin berguna untuk melihat
keluaran verbose di sisi klien dan dari daemon.)
Jika Anda ingin menjadi mewah, Anda dapat membuat konfigurasi bus khusus untuk bus uji Anda (lihat
file session.conf dan system.conf yang menentukan dua konfigurasi default untuk
contoh). Ini akan memungkinkan Anda untuk menentukan direktori yang berbeda untuk file .service, untuk
contoh.
Gunakan dbus-daemon online menggunakan layanan onworks.net