USERDBCTL(1)

الاسم
userdbctl - فحص المستخدمين والمجموعات والعضويات الجماعية

موجز

userdbctl [خيارات...] {أمر} [اسم...]

الوصف

يمكن استخدام userdbctl لفحص المستخدمين والمجموعات (بالإضافة إلى العضويات الجماعية) للنظام. تستعلم أداة العميل هذه عن معلومات المستخدم/المجموعة المقدمة من خدمات نظام متنوعة، تعمل على سجلات JSON للمستخدم/المجموعة (كما هو محدد في تعريفات سجلات مستخدم JSON[1] و سجلات مجموعة JSON[2])، وسجلات المستخدم/المجموعة التقليدية لـ UNIX NSS/glibc. هذه الأداة هي في الأساس عميل لـ واجهة برمجة تطبيقات البحث عن سجلات المستخدم/المجموعة عبر Varlink[3]، وقد تلتقط أيضًا سجلات مستخدم/مجموعة JSON الإضافية من /etc/userdb/ و /run/userdb/ و /run/host/userdb/ و /usr/lib/userdb/ (انظر nss-systemd(8) للحصول على تفاصيل حول سجلات المستخدم الإضافية).

الخيارات

الخيارات التالية مفهومة:

--output=وضع
    يختار وضع الإخراج. يأخذ أحد القيم "classic" أو "friendly" أو "table" أو "json". إذا كان "classic"، يتم إنشاء إخراج قريب جدًا من تنسيق /etc/passwd أو /etc/group. إذا كان "friendly"، يتم إنشاء إخراج أكثر شمولاً وسهل الاستخدام وقابل للقراءة البشرية. إذا كان "table"، يُنشئ إخراج جدولي بسيط. إذا كان "json"، يُنشئ إخراج بتنسيق JSON. المبدئي هو "friendly" إذا حُدد مستخدم/مجموعة في سطر الأوامر، و "table" بخلاف ذلك.

    لاحظ أن معظم تنسيقات الإخراج لا تظهر جميع المعلومات المتاحة. على وجه الخصوص، يظهر "classic" و "table" فقط الحقول الأكثر أهمية. كما لا تظهر الأوضاع المختلفة تجزئات كلمات المرور. استخدم "json" لعرض جميع الحقول، بما في ذلك أي حقول استيثاق.

    أُضيف في الإصدار 245.

--json=تنسيق
    يختار وضع إخراج JSON (مثل --output=json) ويختار وضع العرض الدقيق. يأخذ أحد القيم "pretty" أو "short". إذا كان "pretty"، تُدرج مسافات بيضاء وأسطر جديدة سهلة للبشر في الإخراج لجعل بيانات JSON أكثر قابلية للقراءة. إذا كان "short"، تُقمع جميع المسافات البيضاء الزائدة.

    أُضيف في الإصدار 250.

--service=خدمة[:خدمة...], -s خدمة:خدمة...
    يتحكم في الخدمات التي سيُستعلم عنها للمستخدمين/المجموعات. يأخذ قائمة من اسم خدمة واحد أو أكثر، مفصولة بـ ":". انظر أدناه للحصول على قائمة بأسماء الخدمات المعروفة. إذا لم يُحدد، سيُستعلم عن جميع الخدمات المتاحة مرة واحدة.

    أُضيف في الإصدار 245.

--with-nss=منطقي
    يتحكم في ما إذا كان ستُضمن عمليات البحث التقليدية عن المستخدم/المجموعة عبر glibc/NSS في الإخراج. إذا اُستخدم --with-nss=no، تُقمع أي محاولات لحل أو تعداد المستخدمين/المجموعات المقدمة فقط عبر glibc NSS. إذا حُدد --with-nss=yes، ييُضمن هؤلاء المستخدمين/المجموعات في الإخراج (وهو المبدئي).

    أُضيف في الإصدار 245.

--with-varlink=منطقي
    يتحكم في ما إذا كان ستُضمن عمليات البحث عن المستخدم/المجموعة عبر Varlink في الإخراج، أي تلك التي تتم عبر واجهة برمجة تطبيقات البحث عن سجلات المستخدم/المجموعة عبر Varlink[3]. إذا اُستخدم --with-varlink=no، تُقمع أي محاولات لحل أو تعداد المستخدمين/المجموعات المقدمة فقط عبر Varlink. إذا حُدد --with-varlink=yes، ييُضمن هؤلاء المستخدمين/المجموعات في الإخراج (وهو المبدئي).

    أُضيف في الإصدار 249.

--with-dropin=منطقي
    يتحكم في ما إذا كان ستُضمن عمليات البحث عن المستخدم/المجموعة في الإخراج المعرفة باستخدام ملفات إضافية في /etc/userdb/ و /run/userdb/ و /run/host/userdb/ و /usr/lib/userdb/. إذا اُستخدم --with-dropin=no، يتم قمع هذه السجلات. إذا حُدد --with-dropin=yes، ييُضمن هؤلاء المستخدمين/المجموعات في الإخراج (وهو المبدئي).

    أُضيف في الإصدار 249.

--synthesize=BOOL
    يتحكم في ما إذا كان سيُولف سجلات للمستخدمين/المجموعات root و nobody إذا لم تُعرّف بطريقة أخرى، بالإضافة إلى المستخدمين/المجموعات لنطاق UID "الأجنبي". بشكل مبدئي (أو مع "yes")، تُولف هذه السجلات ضمنيًا إذا كانت مفقودة بطريقة أخرى لأن لها أهمية خاصة لنظام التشغيل. عند "no"، يُوقف هذا التوليف.

    أُضيف في الإصدار 245.

-N
    هذا الخيار هو اختصار لـ --with-nss=no --synthesize=no. استخدم هذا الخيار لإظهار السجلات المحددة أصلاً فقط كسجلات مستخدم أو مجموعة JSON، مع إيقاف جميع توافقات NSS/glibc وجميع التوليفات الضمنية.

    أُضيف في الإصدار 245.

--multiplexer=قيمة_منطقية
    يتحكم في ما إذا كان سيُجرى عمليات البحث عبر خدمة المعدد (إذا حُدد كصحيح، المبدئي) أو إجراء عمليات البحث في العميل (إذا حُدد كخاطئ). استخدام خدمة المعدد هو الأفضل عادةً، لأنها تعمل في صندوق حماية مقفل.

    أُضيف في الإصدار 250.

--chain
    عند استخدامه مع أمر ssh-authorized-keys، سيسمح هذا بتمرير سطر أوامر إضافي بعد اسم المستخدم يُنفذ بشكل متسلسل بعد اكتمال البحث. يسمح هذا بتسلسل أدوات متعددة تظهر مفاتيح SSH المصرح بها.

    أُضيف في الإصدار 250.

--fuzzy, -z
    عند استخدامه مع أمر user أو group، يُجرى بحث سلسلة ضبابي. سيُطابق أي وسائط محددة مقابل اسم المستخدم والاسم الحقيقي لسجل المستخدم وعنوان البريد الإلكتروني وسلاسل وصفية أخرى لسجل المستخدم أو المجموعة. علاوة على ذلك، بدلاً من المطابقة الدقيقة، يُطبق مطابقة سلسلة فرعية أو مطابقة تسمح بانحرافات طفيفة في التهجئة.

    أُضيف في الإصدار 257.

--disposition=
    عند استخدامه مع الأمر user أو group، يُرشح حسب تصنيف السجل. يأخذ أحد القيم "intrinsic"، "system"، "regular"، "dynamic"، "container". يمكن استخدامه عدة مرات، وفي هذه الحالة لا تُعرض إلا المستخدمون المطابقون لأي من التصنيفات المحددة.

    أُضيف في الإصدار 257.

-I، -S، -R
    اختصارات لـ --disposition=intrinsic، --disposition=system، --disposition=regular، على الترتيب.

    أُضيف في الإصدار 257.

--uid-min=، --uid-max=
    عند استخدامه مع الأمر user أو group، يُرشح المخرجات حسب نطاقات UID/GID. يأخذ قيمًا رقمية للحد الأدنى أو الأقصى لـ UID/GID، على الترتيب. يُظهر فقط السجلات ضمن النطاق المحدد. عند تطبيقه على الأمر user، يُطابق مع UIDs. عند تطبيقه على الأمر group، يُطابق مع GIDs (رغم اسم المفتاح). إذا لم يُحدد، فالمبدئي هو 0 (للحد الأدنى) و4294967294 (للحد الأقصى)، أي مبدئيًا لا يُطبق أي ترشيح، حيث يُغطى نطاق UID/GID بالكامل.

    أُضيف في الإصدار 257.

--uuid=
    عند استخدامه مع الأمر user أو group، يُرشح المخرجات إلى السجل ذي UUID المحدد. إذا لم يُحدد، فلا يُطبق أي ترشيح قائم على UUID.

    أُضيف في الإصدار 259.

--boundaries=
    عند استخدامه مع الأمر user أو group، يتحكم في إظهار معلومات حدود نطاق UID/GID ذات الصلة في المخرجات الجدولية. يأخذ قيمة منطقية. المبدئي هو true.

    أُضيف في الإصدار 257.

-B
    اختصار لـ --boundaries=no.

    أُضيف في الإصدار 257.

--from-file=PATH، -F
    عند استخدامه مع الأمر user أو group، يُقرأ تعريف المستخدم بصيغة JSON من الملف المحدد، بدلاً من الاستعلام عنه من النظام. إذا حُدد المسار كـ "-"، يُقرأ بيانات JSON من الإدخال المعياري. هذا مفيد للتحقق من صحة وفحص سجلات المستخدم أو المجموعة بصيغة JSON بسرعة، والتحقق من كيفية تفسيرها على النظام المحلي.

    أُضيف في الإصدار 258.

--no-pager
    لا تمرر المخرجات إلى برنامج عرض (pager).

--no-legend
    لا تطبع مفتاح الرموز، أي ترويسات الأعمدة والتذييل المزود بالتلميحات.

-h، --help
    اطبع نص مساعدة قصير واخرج.

--version
    اطبع سلسلة إصدار قصيرة واخرج.

الأوامر

الأوامر التالية مفهومة:

user [USER...]
    اسرد جميع سجلات المستخدمين المعروفة أو أظهر تفاصيل سجل مستخدم واحد أو أكثر. استخدم --output= لتعديل وضع المخرجات.

    إذا استُخدم مع --from-file=، تُقرأ بيانات سجل المستخدم بصيغة JSON من الملف المحدد بدلاً من الاستعلام عنها من النظام. للتفاصيل انظر أعلاه.

    أُضيف في الإصدار 245.

group [GROUP...]
    اسرد جميع سجلات المجموعات المعروفة أو أظهر تفاصيل سجل مجموعة واحد أو أكثر. استخدم --output= لتعديل وضع المخرجات.

    إذا استُخدم مع --from-file=، تُقرأ بيانات سجل المجموعة بصيغة JSON من الملف المحدد بدلاً من الاستعلام عنها من النظام. للتفاصيل انظر أعلاه.

    أُضيف في الإصدار 245.

users-in-group [GROUP...]
    اسرد المستخدمين الأعضاء في المجموعات المحددة. إذا لم تُحدد أي مجموعات، اسرد جميع عضويات المستخدم/المجموعة المعرفة. استخدم --output= لتعديل وضع المخرجات.

    أُضيف في الإصدار 245.

groups-of-user [USER...]
    اسرد المجموعات التي ينتمي إليها المستخدمون المحددون. إذا لم يُحدد أي مستخدمين، اسرد جميع عضويات المستخدم/المجموعة المعرفة (في هذه الحالة، groups-of-user و users-in-group متكافئان). استخدم --output= لتعديل وضع المخرجات.

    أُضيف في الإصدار 245.

خدمات
    اسرد جميع الخدمات التي توفر حاليًا تعريفات المستخدم/المجموعة للنظام. انظر أدناه لقائمة الخدمات المعروفة التي توفر معلومات المستخدم.

    أُضيف في الإصدار 245.

ssh-authorized-keys
    أظهر مفاتيح SSH المصرح بها لهذا الحساب. هذا الأمر يُقصد استخدامه للسماح لخفي SSH بالتقاط المفاتيح المصرح بها من سجلات المستخدم، انظر أدناه.

    أُضيف في الإصدار 245.

load-credentials
    عند التحديد، تُستخدم بيانات الاعتماد التالية عند تمريرها:

    userdb.user.*, userdb.group.*
        يجب أن تحتوي هذه الاستيثاقات على سجلات JSON User[1] و JSON Group[2] صالحة. لكل استيثاق مطابق، تُنشأ ملفات متنوعة في /etc/userdb/، لتنفيذ الواجهة الموصوفة في nss-systemd(8). يجب أن تحتوي أي سجلات مستخدم مُمررة على حقول UID و GID صالحة. يجب أن تحتوي أي سجلات مجموعة مُمررة على حقل GID (أي أن التخصيص الآلي لـ UID/GID غير مدعوم). لكل من سجلات المستخدم والمجموعة، يجب أن تتطابق لاحقة الاستيثاق (لـ "userdb.user.foobar" اللاحقة هي "foobar") مع اسم المستخدم أو المجموعة المُشفّر في السجل.

        أُضيف في الإصدار 258.

    أُضيف في الإصدار 258.

الخدمات المعروفة

يسرد أمر userdbctl services جميع الخدمات الجارية حالياً التي توفر تعريفات المستخدم أو المجموعة للنظام. تُعرض الخدمات المعروفة التالية ضمن هذه القائمة:

io.systemd.DynamicUser
    تُوفر هذه الخدمة بواسطة مدير خدمة النظام نفسه (أي PID 1) وتجعل جميع المستخدمين (ومجموعاتهم) المُركّبين عبر إعداد DynamicUser= في ملفات وحدة الخدمة متاحة للنظام (انظر systemd.exec(5) للتفاصيل حول هذا الإعداد).

    أُضيف في الإصدار 245.

io.systemd.Home
    تُوفر هذه الخدمة بواسطة systemd-homed.service(8) وتجعل جميع المستخدمين (ومجموعاتهم) المنتمين إلى أدلة منزلية تُدار بواسطة تلك الخدمة متاحة للنظام.

    أُضيف في الإصدار 245.

io.systemd.Machine
    تُوفر هذه الخدمة بواسطة systemd-machined.service(8) وتُركّب سجلات لجميع المستخدمين/المجموعات المستخدمة بواسطة حاوية تستخدم نطاقات أسماء المستخدمين.

    أُضيف في الإصدار 246.

io.systemd.Multiplexer
    تُوفر هذه الخدمة بواسطة systemd-userdbd.service(8) وتُعدد عمليات بحث المستخدم/المجموعة إلى جميع خدمات البحث الجارية الأخرى. هذه هي نقطة الدخول الرئيسة لعملاء سجلات المستخدم/المجموعة، حيث تُبسط تنفيذ جانب العميل بشكل كبير، إذ يمكنهم سؤال خدمة واحدة للبحث بدلاً من سؤال جميع الخدمات الجارية بالتوازي. يستخدم userdbctl هذه الخدمة بشكل مفضل أيضًا، ما لم يُستخدم --with-nss= أو --service=، وفي هذه الحالة يلزم تحكم أدق في الخدمات التي سيُتحدث إليها.

    أُضيف في الإصدار 245.

io.systemd.NameServiceSwitch
    تُوفر هذه الخدمة (أيضًا) بواسطة systemd-userdbd.service(8) وتُحوّل سجلات المستخدم/المجموعة الكلاسيكية لـ NSS/glibc إلى سجلات JSON للمستخدم/المجموعة، مما يوفر توافقاً كاملاً مع الإصدارات السابقة. استخدم --with-nss=no لتعطيل هذا التوافق، انظر أعلاه. لاحظ أن التوافق يُوفر فعلياً في كلا الاتجاهين: سيقوم nss-systemd(8) آلياً بتركيب سجلات المستخدم/المجموعة الكلاسيكية لـ NSS/glibc من جميع سجلات JSON للمستخدم/المجموعة المُقدمة للنظام، وبالتالي فإن استخدام كلتا واجهتي API مكافئ إلى حد كبير ويوفر الوصول إلى نفس البيانات، ومع ذلك فإن واجهات API لـ NSS/glibc تُظهر بالضرورة مجموعة حقول أكثر تقييداً فقط.

    أُضيف في الإصدار 245.

io.systemd.DropIn
    تُوفر هذه الخدمة (أيضًا) بواسطة systemd-userdbd.service(8) وتلتقط سجلات JSON للمستخدم/المجموعة من /etc/userdb/، /run/userdb/، /run/host/userdb/، /usr/lib/userdb/.

    أُضيف في الإصدار 249.

لاحظ أن userdbctl لديه دعم داخلي لعمليات البحث المستندة إلى NSS أيضًا. هذا يعني أنه إذا لم يكن io.systemd.Multiplexer ولا io.systemd.NameServiceSwitch قيد التشغيل، فستظل عمليات البحث في قواعد بيانات المستخدم/المجموعة الأساسية تعمل.

التكامل مع SSH

قد تُستخدم أداة userdbctl لجعل قائمة مفاتيح SSH المصرح بها والمحتواة ربما في سجل مستخدم متاحة لخادم SSH للاستيثاق. لذلك، قم بتكوين ما يلي في sshd_config(5):

    ...
    AuthorizedKeysCommand /usr/bin/userdbctl ssh-authorized-keys %u
    AuthorizedKeysCommandUser root
    ...

أحياناً، من المفيد السماح باستدعاء متسلسل لبرنامج آخر لسرد مفاتيح SSH المصرح بها. باستخدام خيار --chain، قد يُنفذ مثل هذه الأداة بشكل متسلسل بواسطة userdbctl ssh-authorized-keys بمجرد اكتمال البحث، بغض النظر عما إذا عثر على مفتاح SSH أم لا. مثال:

    ...
    AuthorizedKeysCommand /usr/bin/userdbctl ssh-authorized-keys %u --chain /usr/bin/othertool %u
    AuthorizedKeysCommandUser root
    ...

سيقوم ما سبق أولاً بالاستعلام عن قاعدة بيانات userdb لمفاتيح SSH، ثم ينفذ بشكل متسلسل /usr/bin/othertool ليُستعلم عنه أيضًا.

حالة الخروج

عند النجاح، يُعاد 0، وبخلاف ذلك يُعاد رمز فشل غير صفري.

البيئة

$SYSTEMD_LOG_LEVEL
    الحد الأقصى لمستوى السجل للرسائل الصادرة (تُكتم الرسائل ذات مستوى السجل الأعلى، أي الأقل أهمية). يأخذ قائمة قيم مفصولة بفواصل. يمكن أن تكون القيمة إما واحدة من (بترتيب تنازلي للأهمية) emerg، أو alert، أو crit، أو err، أو warning، أو notice، أو info، أو debug، أو رقمًا صحيحًا في النطاق من 0 إلى 7. راجع syslog(3) لمزيد من المعلومات. يمكن اختياريًا سبق كل قيمة بأحد الخيارات console، أو syslog، أو kmsg أو journal متبوعة بنقطتين لضبط الحد الأقصى لمستوى السجل لهذا الهدف المحدد (مثلاً: SYSTEMD_LOG_LEVEL=debug,console:info يحدد التسجيل بمستوى debug باستثناء التسجيل في الطرفية الذي يجب أن يكون بمستوى info). لاحظ أن الحد الأقصى العالمي لمستوى السجل له الأولوية على أي حدود مستويات سجل لكل هدف على حدة.

$SYSTEMD_LOG_COLOR
    قيمة منطقية. إذا كانت صحيحة، فستُلون الرسائل المكتوبة في الـ tty حسب الأولوية.

    هذا الإعداد مفيد فقط عندما تُكتب الرسائل مباشرة إلى الطرفية، لأن journalctl(1) والأدوات الأخرى التي تعرض السجلات ستلون الرسائل بناءً على مستوى السجل من تلقاء نفسها.

$SYSTEMD_LOG_TIME
    قيمة منطقية. إذا كانت صحيحة، فستُسبق رسائل سجل الطرفية بختم زمني.

    هذا الإعداد مفيد فقط عندما تُكتب الرسائل مباشرة إلى الطرفية أو إلى ملف، لأن journalctl(1) والأدوات الأخرى التي تعرض السجلات ستُرفق طوابع زمنية بناءً على البيانات الوصفية للمدخلات من تلقاء نفسها.

$SYSTEMD_LOG_LOCATION
    قيمة منطقية. إذا كانت صحيحة، فستُسبق الرسائل باسم الملف ورقم السطر في الشيفرة المصدرية حيث نشأت الرسالة.

    لاحظ أن موقع السجل غالبًا ما يُرفق كبيانات وصفية بمدخلات اليوميات على أي حال. ومع ذلك، قد يكون تضمينه مباشرة في نص الرسالة مفيدًا عند تنقيح البرامج.

$SYSTEMD_LOG_TID
    قيمة منطقية. إذا كانت صحيحة، فستُسبق الرسائل بمعرّف الخيط الرقمي الحالي (TID).

    لاحظ أن هذه المعلومات تُرفق كبيانات وصفية بمدخلات اليوميات على أي حال. ومع ذلك، قد يكون تضمينه مباشرة في نص الرسالة مفيدًا عند تنقيح البرامج.

$SYSTEMD_LOG_TARGET
    وجهة رسائل السجل. أحد الخيارات: console (التسجيل في الطرفية المرفقة)، أو console-prefixed (التسجيل في الطرفية المرفقة ولكن مع بادئات ترميز مستوى السجل و"المرفق"، راجع syslog(3)، أو kmsg (التسجيل في ذاكرة السجل الدائرية للنواة)، أو journal (التسجيل في اليوميات)، أو journal-or-kmsg (التسجيل في اليوميات إذا كانت متاحة، وفي kmsg بخلاف ذلك)، أو auto (تحديد هدف السجل المناسب آليًا، وهو المبدئي)، أو null (تعطيل مخرج السجل).

$SYSTEMD_LOG_RATELIMIT_KMSG
    فيما إذا كان سيُحد معدل kmsg أم لا. يأخذ قيمة منطقية. القيمة المبدئية هي "true". إذا عُطّل، فلن يحد systemd من معدل الرسائل المكتوبة في kmsg.

$SYSTEMD_PAGER، $PAGER
    مستعرض الصفحات المراد استخدامه عندما لا يُعطى الخيار --no-pager. يُستخدم $SYSTEMD_PAGER إذا كان مضبوطًا؛ وإلا فيُستخدم $PAGER. إذا لم يُضبط أي من $SYSTEMD_PAGER أو $PAGER، فتُجرب مجموعة من التطبيقات المعروفة لمستعرضات الصفحات تباعًا، بما في ذلك less(1) و more(1)، حتى يُعثر على أحدها. إذا لم يُكتشف أي تطبيق لمستعرض الصفحات، فلا يُستدعى أي مستعرض. ضبط متغيرات البيئة هذه على سلسلة فارغة أو القيمة "cat" يعادل تمرير الخيار --no-pager.

    ملاحظة: إذا لم يُضبط $SYSTEMD_PAGERSECURE، فلا يمكن استخدام $SYSTEMD_PAGER و $PAGER إلا لتعطيل مستعرض الصفحات (باستخدام "cat" أو "")، ويُتجاهل فيما عدا ذلك.

$SYSTEMD_LESS
    تجاوز الخيارات الممررة إلى less (مبدئيًا "FRSXMK").

    قد يرغب المستخدمون في تغيير خيارين على وجه الخصوص:

    K
        يوجه هذا الخيار مستعرض الصفحات بالخروج فورًا عند الضغط على Ctrl+C. للسماح لـ less بالتعامل مع Ctrl+C بنفسه للعودة إلى محث أوامر المستعرض، قم بإلغاء ضبط هذا الخيار.

        إذا لم تتضمن قيمة $SYSTEMD_LESS الحرف "K"، وكان المستعرض المستدعى هو less، فسيُتجاهل Ctrl+C من قبل الملف التنفيذي، ويجب معالجته من قبل المستعرض.

    X
        يوجه هذا الخيار مستعرض الصفحات بعدم إرسال سلاسل تهيئة وإنهاء termcap إلى الطرفية. يُضبط مبدئيًا للسماح لمخرجات الأوامر بالبقاء مرئية في الطرفية حتى بعد خروج المستعرض. ومع ذلك، فإن هذا يمنع بعض وظائف المستعرض من العمل، لا سيما أن المخرجات المفصولة بصفحات لا يمكن تمريرها باستخدام الفأرة.

    لاحظ أن ضبط متغير البيئة العادي $LESS ليس له أي تأثير عند استدعاء less بواسطة أدوات systemd.

    راجع less(1) لمزيد من النقاش.

$SYSTEMD_LESSCHARSET
    يتجاوز طقم المحارف الممرر إلى less (مبدئيًا "utf-8"، إذا حُدّد أن الطرفية المستدعية متوافقة مع UTF-8).

    لاحظ أن ضبط متغير البيئة العادي $LESSCHARSET ليس له أي تأثير عند استدعاء less بواسطة أدوات systemd.

$SYSTEMD_PAGERSECURE
    تدعم أوامر المستعرض (pager) الشائعة مثل less(1)، بالإضافة إلى "التصفح"، أي التمرير عبر المخرجات، فتح ملفات أخرى أو الكتابة إليها وتشغيل أوامر صدفة عشوائية. عند استدعاء الأوامر بامتيازات مرفوعة، على سبيل المثال تحت sudo(8) أو pkexec(1)، يصبح المستعرض حدًا أمنيًا. يجب الحرص على استخدام البرامج ذات الوظائف المحدودة للغاية فقط كمستعرضات، وعدم السماح بالميزات التفاعلية غير المقصودة مثل فتح ملفات جديدة أو إنشائها أو بدء عمليات فرعية. يمكن تمكين "الوضع الآمن" للمستعرض كما هو موضح أدناه، إذا كان المستعرض يدعم ذلك (معظم المستعرضات لم تُكتب بطريقة تأخذ هذا في الاعتبار). يوصى إما بتمكين "الوضع الآمن" صراحةً أو تعطيل المستعرض تمامًا باستخدام --no-pager أو PAGER=cat عند السماح للمستخدمين غير الموثوق بهم بتنفيذ أوامر بامتيازات مرفوعة.

    يأخذ هذا الخيار وسيطًا منطقيًا. عند ضبطه على صحيح (true)، يُمكن "الوضع الآمن" لمستعرض الصفحات. في "الوضع الآمن"، سيُضبط LESSSECURE=1 عند استدعاء المستعرض، مما يوجه المستعرض لتعطيل الأوامر التي تفتح أو تنشئ ملفات جديدة أو تبدأ عمليات فرعية جديدة. حاليًا، يُعرف فقط less(1) بقدرته على فهم هذا المتغير وتطبيق "الوضع الآمن".

    عند الضبط إلى false، لا توضع قيود على أداة التصفح (pager). إن ضبط SYSTEMD_PAGERSECURE=0 أو عدم إزالته من البيئة الموروثة قد يسمح للمستخدم باستدعاء أوامر اعتباطية.

    عندما لا يُضبط $SYSTEMD_PAGERSECURE، تحاول أدوات systemd استنتاج ما إذا كان ينبغي تمكين "الوضع الآمن" وما إذا كان جهاز العرض يدعمه آليًا. يُمكّن "الوضع الآمن" إذا كان UID الفعلي ليس هو نفسه مالك جلسة تسجيل الدخول، انظر geteuid(2) و sd_pid_get_owner_uid(3)، أو عند التشغيل تحت sudo(8) أو أدوات مماثلة (عند ضبط $SUDO_UID [4]). في تلك الحالات، سيُضبط SYSTEMD_PAGERSECURE=1 ولن تُستخدم أجهزة العرض غير المعروف أنها تُنفذ "الوضع الآمن" على الإطلاق. لاحظ أن هذا الاكتشاف الآلي يغطي فقط الآليات الأكثر شيوعًا لرفع الامتيازات وهو مخصص للملاءمة. يوصى بضبط $SYSTEMD_PAGERSECURE صراحة أو تعطيل جهاز العرض.

    لاحظ أنه إذا أُريد احترام المتغيرات $SYSTEMD_PAGER أو $PAGER، لغير غرض تعطيل مستعرض الصفحات، فيجب ضبط $SYSTEMD_PAGERSECURE أيضًا.

$SYSTEMD_COLORS
    يأخذ وسيطًا منطقيًا (boolean)، أو قيمة خاصة. مبدئيًا (عند عدم الضبط)، سيستخدم systemd والأدوات المرتبطة به الألوان في مخرجاتها إذا أمكن ذلك. إذا ضُبط $COLORTERM على "truecolor" أو "24bit"، فستُمكّن ألوان 24 بت، وإلا فستُستخدم 256 لونًا، ما لم يشر $NO_COLOR أو $TERM إلى تعطيل الألوان.

    true
        نفس حالة عدم الضبط، باستثناء تجاهل $NO_COLOR.

    false
        سيكون المخرج أحادي اللون.

    "16"، "256"، "24bit"
        استخدم دائمًا ألوان ANSI الـ 16 الأساسية، أو 256 لونًا، أو لون 24 بت، على التوالي.

    "auto-16"، "auto-256"، "auto-24bit"
        استخدم كمية الألوان المعطاة، بشرط $TERM، وما هو متصل بالطرفية.

$SYSTEMD_URLIFY
    يجب أن تكون القيمة منطقية. تتحكم فيما إذا كان يجب توليد روابط قابلة للنقر في المخرج لمحاكيات الطرفية التي تدعم ذلك. يمكن تحديد هذا لتجاوز القرار الذي يتخذه systemd بناءً على $TERM وشروط أخرى.

انظر أيضًا

systemd(1), systemd-userdbd.service(8), systemd-homed.service(8), nss-systemd(8), getent(1)

ملاحظات

1.  سجلات مستخدم JSON
    https://systemd.io/USER_RECORD

2.  سجلات JSON للمجموعة
    https://systemd.io/GROUP_RECORD

3.  واجهة برمجة تطبيقات البحث عن سجل المستخدم/المجموعة عبر Varlink
    https://systemd.io/USER_GROUP_API

4.  يوصى للأدوات الأخرى بضبط والتحقق من $SUDO_UID حسب الاقتضاء، ومعاملته كواجهة مشتركة.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.