GEOCLUE CONFIGURATION(5) فایل‌های پیکربندی GEOCLUE CONFIGURATION(5)

geoclue - پرونده پیکربندی دیمن اطلاعات جغرافیایی Geoclue

پرونده اصلی پیکربندی: /etc/geoclue/geoclue.conf
پرونده‌های بازنویسی پارامترها: /etc/geoclue/conf.d

پرونده اصلی پیکربندی GeoClue با نام 'geoclue.conf' پارامترهایی را مشخص می‌کند که نحوه عملکرد geoclue را کنترل می‌کنند. می‌توان پارامترها را با قرار دادن پرونده‌های پیکربندی در دایرکتوری conf.d بازنویسی کرد؛ این پرونده‌ها به ترتیب الفبایی اعمال می‌شوند. بنابراین، پرونده پیکربندی '90-config.conf' پارامترهای مشخص‌شده در یک پرونده پیکربندی دیگر به نام '50-config.conf' در دایرکتوری conf.d را بازنویسی خواهد کرد.

تمامی تنظیمات پیکربندی زیر اجباری هستند و مقادیر پیش‌فرض همان مواردی است که قبل از ویرایش در geoclue.conf مشاهده می‌کنید. اگر می‌خواهید مقادیر پیش‌فرض را حفظ کنید، قبل از تغییر دادن خط(های) مربوطه، یک کپی از آن‌ها تهیه کرده و به صورت کامنت درآورید.

نبود کلید 'enable' برای یک منبع خاص در پرونده اصلی پیکربندی، باعث می‌شود آن منبع به صورت پیش‌فرض فعال باشد. افزودن تنظیم کلید 'enable' به هر پرونده پیکربندی دیگر می‌تواند این مقدار پیش‌فرض را بازنویسی کند.

[agent] برای شروع پیکربندی کارگزار (agent) استفاده می‌شود.


فهرست مجاز شناسه رومیزی (بدون بخش ‎.desktop‎) تمامی کارگزارهای شناسایی‌شده، که با ';' از هم جدا شده‌اند.
whitelist=geoclue-demo-agent;gnome-shell;io.elementary.desktop.agent-geoclue2

[ip]

گزینه‌های پیکربندی منبع IP
enable=true
فعال کردن منبع GeoIP
method=ichnaea
روش (پشتانه) مورد استفاده برای مکان‌یابی IP. موارد پیاده‌سازی‌شده در حال حاضر عبارتند از:
'"ichnaea"': استفاده از API ایچنایا (Ichnaea) با URL مشخص‌شده از منبع wifi.
'"gmaps"': استفاده از مکان تعیین‌شده توسط Google Maps.
'"reallyfreegeoip"': سایت reallyfreegeoip.org. این API دقت را بازنمی‌گرداند، بنابراین از یک مقدار ثابت استفاده می‌شود. گزینه accuracy در زیر را ببینید.
نیازی به تنظیم گزینه‌های زیر نیست، اما در صورت تمایل به لغو و بازنویسی مقادیر پیش‌فرض روش، می‌توان آن‌ها را مشخص کرد:
url=https://example.com/v1/geolocate
نشانی URL جایگزین برای سرویس GeoIP پیاده‌سازی‌شده با روش انتخاب‌شده.
accuracy=30000.0
بازنویسی دقت دریافت شده از سرور GeoIP (یا مقدار ثابت در روش) با این مقدار.
[network-nmea]

گزینه‌های پیکربندی منبع NMEA تحت شبکه
منابع NMEA تحت شبکه به طور خودکار با استفاده از avahi و دامنه _nmea-0183._tcp شناسایی می‌شوند. یک سرویس NMEA در شبکه شما می‌تواند با اجرای دستور زیر در avahi ثبت شود:
$ avahi-publish-service -H my.nmea.host "NMEA over TCP" _nmea-0183._tcp 50000
در اینجا 'my.nmea.host' و '50000' به ترتیب نام میزبان و درگاه (port) سرویس NMEA هستند.
enable=true
آیا مکان از منابع NMEA در شبکه محلی دریافت شود؟
nmea-socket=/var/run/gps-share.sock
استفاده از سوکت یونیکس به عنوان منبع داده NMEA. در صورت عدم تنظیم، از سوکت یونیکس استفاده نخواهد شد.
[3g]

گزینه‌های پیکربندی منبع 3G
enable=true
فعال کردن منبع 3G. منبع 3G از نشانی URL سرویس مکان‌یابی جغرافیایی بی‌سیم که در بخش wifi تعریف شده است استفاده می‌کند.
[cdma]

گزینه‌های پیکربندی منبع CDMA
enable=true
فعال کردن منبع CDMA
[modem-gps]

گزینه‌های پیکربندی منبع Modem GPS
enable=true
فعال کردن منبع Modem-GPS
[wifi]

گزینه‌های پیکربندی منبع WiFi
enable=true
فعال کردن منبع WiFi
url=https://example.com/v1/geolocate?key=YOUR_KEY
نشانی URL سرویس مکان‌یابی جغرافیایی بی‌سیم سازگار با Ichnaea API (https://ichnaea.readthedocs.io/en/latest/api/geolocate.html). در صورت عدم تنظیم، به نشانی URL تعیین‌شده در پیکربندی ساخت بازمی‌گردد. اگر هیچ نشانی URL در اینجا یا در پیکربندی ساخت تنظیم نشود، منابع wifi و 3g غیرفعال خواهند شد. یک کلید API می‌تواند با پارامتر key در URL تنظیم شود.
submit-data=false
ارسال داده‌ها به یک سرویس مکان‌یابی جغرافیایی بی‌سیم.
اگر برابر با true تنظیم شود، geoclue هر بار که اتصال و قفل GPS (GPS lock) دریافت کند، داده‌های شبکه را به طور خودکار به یک سرویس مکان‌یابی جغرافیایی بی‌سیم ارسال می‌کند. در حال حاضر، فقط منابع Modem-GPS یا Network NMEA به عنوان ارائه‌دهنده مکان جهت ارسال پشتیبانی می‌شوند (در هر زمان یکی از آن‌ها). اگر منبع Modem-GPS در بالا فعال باشد، ارائه‌دهنده انحصاری خواهد بود (صرف‌نظر از اینکه سیستم واقعاً به چنین مودمی مجهز باشد یا خیر)، در غیر این صورت منبع Network NMEA در نظر گرفته می‌شود.
submission-url=https://example.com/v2/geosubmit?key=YOUR_KEY
نشانی URL برای ارسال داده‌ها به یک سرویس مکان‌یابی جغرافیایی بی‌سیم با API سازگار با Ichnaea (https://ichnaea.readthedocs.io/en/latest/api/geosubmit2.html).
submission-nick=geoclue
یک نام مستعار برای ارسال داده‌های شبکه. هدر HTTP با عنوان X-Nickname را برای درخواست ارسال تنظیم می‌کند. اگر یک رشته خالی تنظیم شود، از ارسال حذف می‌شود. در غیر این صورت باید بین ۲ تا ۳۲ نویسه طول داشته باشد. مقدار پیش‌فرض geoclue است.
[compass]

گزینه‌های پیکربندی قطب‌نما (Compass)
enable=true
فعال کردن قطب‌نما
[static-source]

گزینه‌های پیکربندی منبع ایستا (Static source).
این منبع مکان را از پرونده geolocation در /etc می‌خواند. برای ساختار این پرونده، بخش پرونده مکان ایستا (STATIC LOCATION FILE) در زیر را ببینید. در حالی که این پرونده در طول کارکرد geoclue به طور مداوم برای تغییرات پایش می‌شود و مکان ایستای گزارش‌شده مطابق با آن به‌روزرسانی می‌گردد، این منبع برای وارد کردن مکانی با تغییرات پویا به geoclue در نظر گرفته نشده است (لطفاً برای این منظور از منبع Network NMEA استفاده کنید).
enable=true
فعال کردن منبع ایستا.
اگر از این منبع استفاده می‌کنید، احتمالاً باید سایر منابع مکان را در geoclue.conf غیرفعال کنید تا آن‌ها مکان ایستای پیکربندی‌شده را بازنویسی نکنند.

داشتن یک مدخل در اینجا برای یک برنامه کاربردی با allowed=true به این معنی است که geoclue برای اعتبارسنجی برنامه از کارگزار (agent) درخواستی نخواهد کرد. این امر برای اطمینان از این است که برنامه‌های کاربردی دارای سازوکار اعتبارسنجی داخلی (مانند مرورگرهای وب) نیازی به پیوند با کارگزارها نداشته باشند.

اگر دسترسی برنامه شما به اطلاعات مکان رد شد و سیستم‌عامل شما هیچ سازوکاری برای تغییر آن ارائه نمی‌دهد، احتمالاً این یک اشکال (bug) در سیستم‌عامل شما (یا در geoclue) است. راه‌حل این است که مشکل را با تمام جزئیات گزارش دهید، نه اینکه برنامه خود را به این فهرست اضافه کنید.

قالب (Format):
[random-app]
شناسه رومیزی (Desktop ID) برنامه کاربردی بدون بخش ‎.desktop‎

allowed=true|false
آیا دسترسی به اطلاعات مکان مجاز است؟

system=true|false
آیا برنامه یک مؤلفه سیستمی است؟

users=
فهرست UID تمامی کاربرانی که این برنامه برای آن‌ها مجاز به دسترسی به اطلاعات مکان است، جداشده با ';'. برای مجاز بودن برای تمامی کاربران، آن را خالی بگذارید.

مثال‌ها (Examples):
[gnome-datetime-panel]
allowed=true
system=true
users=

[gnome-color-panel]
allowed=true
system=true
users=

[org.gnome.Shell]
allowed=true
system=true
users=

[io.elementary.desktop.agent-geoclue2]
allowed=true
system=true
users=

[epiphany]
allowed=true
system=false
users=

[firefox]
allowed=true
system=false
users=

پرونده مکان ایستا در /etc (استفاده‌شده توسط منبع ایستا) یک پرونده متنی متشکل از موارد زیر است:

1
عرض جغرافیایی یا Latitude (عدد اعشاری ممیز شناور؛ مقادیر مثبت نشان‌دهنده شمال و مقادیر منفی نشان‌دهنده جنوب هستند)
2
طول جغرافیایی یا Longitude (عدد اعشاری ممیز شناور؛ مقادیر مثبت نشان‌دهنده شرق و مقادیر منفی نشان‌دهنده غرب هستند)
3
ارتفاع یا Altitude (عدد اعشاری ممیز شناور؛ به متر)
4
شعاع دقت یا Accuracy radius (عدد اعشاری ممیز شناور؛ به متر)

این مقادیر باید با نویسه‌های خط جدید (newline) از هم جدا شوند.

•
نویسه '#' آغازگر کامنت (توضیح) است که تا پایان خط جاری ادامه می‌یابد.
•
فاصله‌های خالی ابتدایی و انتهایی در هر خط نادیده گرفته می‌شوند.
•
خطوط خالی (یا خطوطی که فقط شامل فاصله‌های خالی یا کامنت هستند) نادیده گرفته می‌شوند.

# Example static location file for a machine inside Statue of Liberty torch
40.6893129   # latitude
-74.0445531  # longitude
96           # altitude
1.83         # accuracy radius (the diameter of the torch is 12 feet)

برای امنیت بیشتر، پرونده مکان ایستا می‌تواند طوری تنظیم شود که فقط توسط کاربر geoclue قابل خواندن باشد:

# chown geoclue /etc/geolocation
# chmod 600 /etc/geolocation

ارسال سیگنال SIGUSR1 به یک فرایند در حال اجرای geoclue، فهرست فعلی کلاینت‌ها را در لاگ وقایع چاپ می‌کند.

Sachin Chand
2025-05-01 geoclue