الاسم¶
homectl، systemd-homed-firstboot.service -
أنشئ
مجلدات
المنزل أو
أزلها أو
غيّرها أو
افحصها
موجز¶
homectl
[الخيارات...]
{الأمر}
[الاسم...]
الوصف¶
يمكن
استخدام homectl
لإنشاء
مجلد منزل
المستخدم
أو إزالته
أو تغييره
أو فحصه. هو
في المقام
الرئيس أمر
يتصل بـ
systemd-homed.service(8) الذي
يدير
مجلدات
منزل
المستخدمين.
مجلدات
المنزل
التي
يديرها systemd-homed.service
ذاتية
الاحتواء،
وبالتالي
تتضمن سجل
البيانات
الوصفية
الكامل
للمستخدم
في مخزن
بيانات
المنزل
نفسه، مما
يسهل نقلها
بين
الحواسيب.
وبوجه خاص،
يصف مجلد
المنزل سجل
مستخدم
مطابق، وكل
سجل مستخدم
يديره systemd-homed.service
يتضمن
أيضاً وجود
وتغليف
مجلد
المنزل.
ويصبح حساب
المستخدم
ومجلد
المنزل
المفهوم
ذاته.
آليات
التخزين
الخلفية
التالية
مدعومة:
•ملف
استرجاع (loopback)
مشفر بـ LUKS2
لكل
مستخدم،
مخزن في /home/*.home.
عند
الولوج،
يُوصل نظام
الملفات
الموجود في
هذه
الملفات،
بعد إلحاق
وحدة
التخزين
المشفرة بـ
LUKS2. كلمة سر
المستخدم
مطابقة
لعبارة سر
تعمية وحدة
LUKS2. وبالتالي
لا يمكن
الوصول إلى
البيانات
دون
استيثاق
مسبق
للمستخدم،
حتى لمدير
النظام.
توفر آلية
التخزين
هذه أقوى
أمن
للبيانات
ولذا يوصى
بها.
•مماثل،
ولكن نظام
الملفات
المشفر بـ LUKS2
يقع على
جهاز كتلي
عادي، مثل
ذاكرة USB. في
هذا الوضع،
يمكن نقل
مجلدات
المنزل
وجميع
البيانات
التي
تتضمنها
بسهولة بين
الحواسيب،
ببساطة عن
طريق توصيل
ذاكرة USB
بأنظمة
مختلفة في
أوقات
مختلفة.
•مجلد
معّمى
باستخدام
"fscrypt" على
أنظمة
ملفات
تدعمه (في
الوقت
الحالي هذا
متاح بشكل
رئيس لـ "ext4")،
ويقع في /home/*.homedir.
توفر هذه
الآلية
أيضاً
تعمية،
ولكنها
أضعف بكثير
من LUKS2، حيث إن
معظم
البيانات
الوصفية
لنظام
الملفات
غير محمية.
علاوة على
ذلك، فهي لا
تدعم
حالياً
تغيير
كلمات سر
المستخدم
بمجرد
إنشاء مجلد
المنزل.
•قسم
فرعي "btrfs" لكل
مستخدم،
يقع أيضاً
في /home/*.homedir. لا
يوفر هذا أي
تعمية،
ولكنه يوفر
دعماً
جيداً
للحصص (quota).
•مجلد
عادي لكل
مستخدم،
يقع أيضاً
في /home/*.homedir. لا
يوفر هذا أي
تعمية،
ولكنه بديل
مناسب متاح
في جميع
الحواسيب،
حتى في
الحالات
التي لا
يتوفر فيها
دعم LUKS2 أو "fscrypt"
أو "btrfs".
•مشاركة
ملفات
ويندوز (CIFS)
منفصلة لكل
مستخدم.
لاحظ أن
systemd-homed.service و homectl لن
يديرا
حسابات
مستخدمي
يونكس
"التقليدية"
التي
أُنشئت
باستخدام
useradd(8) أو أدوات
مماثلة.
وبوجه خاص،
هذه
الوظيفة
غير مناسبة
لإدارة
مستخدمي
النظام (أي
المستخدمين
الذين يقل
معرفهم UID عن 1000)
ولكنها
حصرية
للمستخدمين
العاديين
("البشر").
لاحظ أن
المستخدمين/مجلدات
المنزل
التي تُدار
عبر systemd-homed.service لا
تظهر في /etc/passwd
والملفات
المماثلة،
بل يتم
توليفها
عبر glibc NSS أثناء
وقت
التشغيل.
وبالتالي
يمكن حلها
وسردها عبر
أداة getent(1).
تتصل هذه
الأداة
مباشرة بـ
systemd-homed.service، وقد
تنفذ أوامر
محددة على
مجلدات
المنزل
التي
تديرها.
ونظراً لأن
كل مجلد
منزل يُدار
بهذه
الطريقة
يحدد أيضاً
سجل مستخدم
ومجموعة
بتنسيق JSON،
فيمكن
أيضاً فحص
مجلدات
المنزل هذه
وسردها عبر
userdbctl(1).
مجلدات
المنزل
التي
يديرها systemd-homed.service
تكون عادةً
في إحدى
حالتين، أو
في حالة
انتقال
بينهما:
عندما تكون
"نشطة" (active)
تكون غير
مقفلة
وموصولة،
وبالتالي
يمكن
للنظام
وبرامجه
الوصول
إليها؛
وعندما
تكون "غير
نشطة" (inactive) لا
تكون
موصولة
وبالتالي
لا يمكن
الوصول
إليها. يحدث
التنشيط
آلياً عند
ولوج
المستخدم
وعادةً لا
يكتمل إلا
بعد تقديم
كلمة سر (أو
رمز
استيثاق
آخر). ويحدث
إلغاء
التنشيط
بعد خروج
المستخدم
تماماً. يظل
مجلد
المنزل
نشطاً
طالما أن
المستخدم
قد ولج مرة
واحدة على
الأقل، أي
لديه جلسة
ولوج واحدة
على الأقل.
عندما يلج
المستخدم
مرة ثانية
في نفس
الوقت، يظل
مجلد
المنزل
نشطاً.
ويُلغى
تنشيطه فقط
بعد انتهاء
آخر جلسات
المستخدم.
الخيارات¶
تُفهم
الخيارات
العامة
التالية
(تُوثق
الخيارات
الأخرى
التي تتحكم
في الخصائص
المتنوعة
لسجلات
المستخدم
التي
يديرها systemd-homed.service
في الأسفل):
--identity=الملف
اقرأ سجل
JSON الخاص
بالمستخدم
من الملف
المحدد. إذا
مُرر كـ "-"
فسيُقرأ
سجل
المستخدم
من المدخل
القياسي.
يجب أن يتبع
كائن JSON
المزود
البنية
الموثقة في
سجلات
مستخدم JSON[1].
يمكن
استخدام
هذا الخيار
بالاقتران
مع أمري
create و
update (انظر
أدناه)، حيث
يسمح بضبط
سجل
المستخدم
بتنسيق JSON كما
هو، بدلاً
من ضبط
خصائص سجل
المستخدم
الفردية
(انظر أدناه).
أُضيف في
الإصدار 245.
--json=التنسيق،
-j
يتحكم
فيما إذا
كان سيتم
إخراج سجل
المستخدم
بتنسيق JSON،
إذا
استُخدم
الأمر
inspect
(انظر أدناه).
يأخذ
واحداً من
"pretty" أو "short" أو
"off". إذا كان
"pretty" فسيتم
إدراج
مسافات
بيضاء
وأسطر
جديدة
صديقة
للبشر في
المخرجات
لجعل
بيانات JSON
أكثر
قابلية
للقراءة.
إذا كان "short"
فسيتم كتم
جميع
المسافات
البيضاء
الزائدة.
إذا كان "off"
(المبدئي)
فلن تظهر
معلومات
المستخدم
بتنسيق JSON بل
بتنسيق سهل
القراءة
للبشر
بدلاً من
ذلك. يختار
الخيار
-j
التنسيق "pretty"
عند
التشغيل
تفاعلياً و
"short" بخلاف
ذلك.
أُضيف في
الإصدار 245.
--export-format=التنسيق،
-E، -EE
عند
استخدامه
مع الفعل
inspect
في وضع JSON
(انظر أعلاه)
يمكن
استخدامه
لكتم جوانب
معينة من
سجل مستخدم JSON
عند
الإخراج.
وتحديداً،
إذا
استُخدم
تنسيق "stripped"
فستُزال
حقول الربط
ووقت
التشغيل من
السجل. وإذا
استُخدم
تنسيق "minimal"
فستُزال
التواقيع
التعموية
أيضاً. وإذا
استُخدم
تنسيق "full"
فسيظهر سجل JSON
الكامل (هذا
هو المبدئي).
هذا الخيار
مفيد لنسخ
سجل مستخدم
موجود إلى
نظام مختلف
لإنشاء
مستخدم
مماثل هناك
بنفس
الإعدادات.
وتحديداً:
يمكن
استخدام
homectl inspect
-EE | ssh root@othersystem homectl create -i-
كسطر أوامر
بسيط
لمضاعفة
مستخدم على
مضيف آخر.
يكافئ
-E
الخيار
-j
--export-format=stripped، و
-EE
يكافئ
-j --export-format=minimal.
لاحظ أنه
عند مضاعفة
حسابات
المستخدمين،
فإن سجلات
المستخدمين
المكتسبة
في وضع "stripped"
ستحتفظ
بالتواقيع
التعموية
الأصلية
وبالتالي
لا يمكن
تعديلها
إلا عند
توفر
المفتاح
الخاص
لتحديثها
في الحاسوب
الوجهة. عند
مضاعفة
المستخدمين
في وضع "minimal"،
يُزال
التوقيع
أثناء
المضاعفة
وبالتالي
سيُوقع
السجل
ضمنياً
بمفتاح
الحاسوب
الوجهة
ويمكن
تحديثه
هناك دون أي
مضاعفة
للمفتاح
الخاص.
أُضيف في
الإصدار 245.
--offline
لا تحاول
تحديث نسخة
سجل
المستخدم
ومجلد
الكتل
الكبيرة (blob)
المضمن
داخل منطقة
المنزل.
يسمح هذا
بالعمل على
مناطق
المنزل
الغائبة،
أو دون
الحاجة
للاستيثاق
كالمستخدم
الذي يجري
تعديله.
أُضيف في
الإصدار 256.
--key-name=
عند
استخدامه
مع الأمر
add-signing-key، حدد أو
تجاوز
الاسم الذي
سيُخزن
تحته
المفتاح
العام الذي
يُضاف. يمكن
اختيار
الاسم
المحدد
بحرية،
ولكن يجب أن
ينتهي
بلاحقة ".public".
إذا لم
يُستخدم
هذا
الخيار،
فسيُشتق
الاسم من
اسم الملف
المحدد. إذا
قُرئ مفتاح
من المدخل
القياسي،
فإن هذا
الخيار
إلزامي
لتوفير اسم
مناسب
للمفتاح
المضاف.
أُضيف في
الإصدار 258.
--seize=
يأخذ
وسيطاً
منطقياً.
عند
استخدامه
مع
create أو
register،
فإنه يتحكم
فيما إذا
كان سيتم
نزع
التواقيع
التعموية
من سجلات
مستخدم JSON
المزودة،
مما يؤدي
إلى
توقيعها
بمفتاح
التوقيع
المحلي (local.public)
بدلاً من
ذلك. إذا
ضُبط هذا
المفتاح
على true،
فستصبح
سجلات
المستخدم
المضافة
مدارة
محلياً
(وبالتالي
يمكن
تعديلها
محلياً)،
بينما إذا
ضُبط على false
فستظل
سجلات
المستخدم
مدارة
ومملوكة من
أصلها
(وبالتالي
لا يمكن
تعديلها
محلياً).
القيمة
المبدئية
لهذا
المفتاح هي true
للأمر
create و false
للأمر
register.
أُضيف في
الإصدار 258.
--prompt-new-user
إذا
استُخدم
بالاقتران
مع
firstboot ولم
يكن هناك
حساب
مستخدم
عادي موجود
في النظام
حتى الآن،
فستقوم
الأداة
بالاستعلام
تفاعلياً
عن معلومات
المستخدم
وإنشاء
حساب.
أُضيف في
الإصدار 256.
--prompt-shell=
يأخذ
وسيطاً
منطقياً.
يتحكم في ما
إذا كان
سيتم
الاستعلام
تفاعلياً
عن صدفة
ولوج، إذا
استُخدم
firstboot
--prompt-new-user.
المبدئي هو
true.
أُضيف في
الإصدار 259.
--prompt-groups=
يأخذ
وسيطاً
منطقياً.
يتحكم في ما
إذا كان
سيتم
الاستعلام
تفاعلياً
عن مجموعات
مساعدة
لإضافة
المستخدم
الجديد
إليها، إذا
استُخدم
firstboot
--prompt-new-user.
المبدئي هو
true.
أُضيف في
الإصدار 259.
--chrome=
يأخذ
وسيطاً
منطقياً.
مبدئياً،
ستعرض شاشة
إنشاء
المستخدم
التفاعلية
عبر
firstboot --prompt-new-user
أشرطة "chrome"
ملونة
معكوسة في
أعلى وأسفل
شاشة
الطرفية،
والتي قد
تُعطل بضبط
هذا الخيار
على false.
أُضيف في
الإصدار 259.
--mute-console=
يأخذ
وسيطاً
منطقياً.
إذا كان true
فسيُعطل
مخرجات سجل
النواة
ومخرجات
حالة مدير
الخدمة إلى
وحدة تحكم
النظام
مؤقتاً
أثناء
تشغيل
firstboot
--prompt-new-user، بحيث
لا تُقاطع
مخرجاته
الخاصة.
المبدئي هو
false.
أُضيف في
الإصدار 259.
--match=this|other|any|auto، -A،
-N، -T
يأخذ
الخيار
--match=
واحداً من
"this" أو "other" أو
"any" أو "auto".
يمكن تعريف
بعض
إعدادات
سجل
المستخدم
لتطابق
حواسيب
معينة فقط،
أو جميع
الحواسيب
باستثناء
واحد، أو
جميع
الحواسيب.
باستخدام
هذا
المفتاح،
يمكن
التحكم في
الحواسيب
التي
ستُطبق
عليها
الإعدادات
التي تظهر
في سطر
الأوامر
بعده. إذا
حُدد "this"
فسيُطبق
الإعداد
فقط على
النظام
المحلي
(تطابق
إيجابي)،
وإذا كان "other"
فسيُطبق
على جميع
الحواسيب
باستثناء
النظام
المحلي
(تطابق
سلبي)، وإذا
كان "any"
فسيُطبق
على جميع
الأنظمة (ما
لم يكن هناك
إعداد
مطابق
إيجابي أو
سلبي لكل
حاسوب). وإذا
كان "auto"
فيعود إلى
المنطق
المبدئي:
حيث يعتمد
ما إذا كان
الإعداد
يُطبق
مبدئياً
على النظام
المحلي أو
جميع
الأنظمة
على الخيار
المعني.
لاحظ أن
بعض
إعدادات
سجل
المستخدم
فقط هي التي
يمكن
تكييفها
بهذا الشكل.
ليس لهذا
الخيار أي
تأثير على
الإعدادات
الأخرى
ويُتجاهل
هناك. قد
يظهر هذا
الخيار عدة
مرات في سطر
أوامر واحد
لتطبيق
إعدادات
مشروطة
بمطابقات
مختلفة على
سجل
المستخدم
نفسه. انظر
سجلات
مستخدم JSON[1]
لمزيد من
التفاصيل
حول
الإعدادات
التي يمكن
استخدامها
مع مثل هذه
المطابقة
لكل حاسوب
والتي لا
يمكن
استخدامها.
-A هو
اختصار لـ
--match=any، و -T
اختصار لـ
--match=this و -N
اختصار لـ
--match=other.
إليك مثال
على
استدعاء
يضبط حقل
التخزين
على "luks" في
النظام
المحلي،
ولكن على "cifs"
في جميع
الأنظمة
الأخرى:
# homectl update lennart -T --storage=luks -N --storage=cifs
أُضيف في
الإصدار 258.
-H، --host=
نفّذ
العملية عن
بُعد. حدد
اسم مضيف،
أو اسم
مستخدم
واسم مضيف
يفصل
بينهما "@"
للاتصال به.
يمكن
اختيارياً
إلحاق اسم
المضيف
بمنفذ
يستمع إليه
ssh، مفصولاً
بـ ":"، ثم
اسم حاوية،
مفصولاً بـ
"/"، مما
يوصل
مباشرة
بحاوية
معينة على
المضيف
المحدد.
سيستخدم
هذا SSH للتحدث
إلى نسخة
مدير
الحاسوب
البعيد.
يمكن سرد
أسماء
الحاويات
باستخدام machinectl
-H المضيف.
ضع عناوين
IPv6بين قوسين.
-M، --machine=
نفّذ
العملية
على حاوية
محلية. حدد
اسم
الحاوية
للاتصال
بها،
مسبوقًا
اختياريًا
باسم
مستخدم
للاتصال به
وحرف "@"
كفاصل. إذا
استُخدمت
السلسلة
الخاصة ".host"
بدلاً من
اسم
الحاوية،
فسيتم
إجراء
اتصال
بالنظام
المحلي (وهو
أمر مفيد
للاتصال
بناقل
مستخدم
معين: "--user --machine=lennart@.host").
إذا لم
تُستخدم
صيغة "@"،
فسيتم
الاتصال
كمستخدم
جذر (root). إذا
استُخدمت
صيغة "@"،
فيمكن حذف
الجانب
الأيسر أو
الأيمن
(ولكن ليس
كلاهما) وفي
هذه الحالة
يُفترض اسم
المستخدم
المحلي و
".host".
--no-pager
لا تمرر
المخرجات
إلى برنامج
عرض (pager).
--no-legend
لا تطبع
مفتاح
الرموز، أي
ترويسات
الأعمدة
والتذييل
المزود
بالتلميحات.
--no-ask-password
لا تسأل
المستخدم
عن
الاستيثاق
للعمليات
ذات
الامتيازات.
-h، --help
اطبع نص
مساعدة
قصير
واخرج.
--version
اطبع
سلسلة
إصدار
قصيرة
واخرج.
خصائص سجل المستخدم العامة¶
تتحكم
الخيارات
التالية في
الخصائص
المتنوعة
لسجلات
المستخدم/مجلدات
المنزل
التي
يديرها systemd-homed.service.
يمكن
استخدام
هذه
المفاتيح
بالاقتران
مع أمري create و
update لضبط
الجوانب
المختلفة
لمجلد
المنزل
وحساب
المستخدم:
--real-name=الاسم،
-c الاسم
الاسم
الحقيقي
للمستخدم.
هذا يقابل
حقل GECOS في
سجلات UNIX NSS
التقليدية.
أُضيف في
الإصدار 245.
--realm=المجال
المجال
الخاص
بالمستخدم.
يربط
المجال
المستخدم
بجهة أو
تثبيت
معين،
ويسمح
بتمييز
المستخدمين
الذين
يحملون
الاسم نفسه
والمعرفين
في سياقات
مختلفة.
يمكن أن
يكون
المجال أي
سلسلة تصلح
أيضاً كاسم
نطاق DNS صالح،
ويوصى
باستخدام
اسم نطاق
الجهة أو
التثبيت
لهذا
الغرض،
ولكن هذا
ليس
مفروضاً
ولا
مطلوباً. في
كل نظام
يمكن أن
يوجد
مستخدم
واحد فقط
بنفس
الاسم،
وإذا شُوهد
مستخدم
بنفس الاسم
والمجال
فيُفترض
أنه يشير
إلى
المستخدم
نفسه،
بينما
يُعتبر
المستخدم
الذي يحمل
الاسم نفسه
ولكن بمجال
مختلف
مستخدماً
مختلفاً.
لاحظ أن هذا
يعني أنه لا
يُسمح
لمستخدمين
يشتركان في
الاسم نفسه
ولكن
بمجالات
متميزة
بالتواجد
في النظام
نفسه. تعيين
مجال
للمستخدم
أمر
اختياري.
أُضيف في
الإصدار 245.
--alias=الاسم[,الاسم...]
أسماء
إضافية
للمستخدم.
يأخذ اسماً
واحداً أو
أكثر من
أسماء
مستخدمي
يونكس
الصالحة،
مفصولة
بفاصلات.
يمكن
استخدامه
عدة مرات
لتعريف
أسماء
مستعارة
متعددة.
يمكن تحديد
اسم مستخدم
مستعار
حيثما يمكن
تحديد اسم
المستخدم
الرئيس،
ويؤدي إلى
سجل
المستخدم
نفسه.
أُضيف في
الإصدار 258.
--email-address=البريد_الإلكتروني
يأخذ
عنوان بريد
إلكتروني
لربطه
بالمستخدم.
عند
الولوج،
يُهيأ
متغير
البيئة
$EMAIL
من هذه
القيمة.
أُضيف في
الإصدار 245.
--location=النص
يأخذ
مواصفات
الموقع
لهذا
المستخدم.
هذا نص حر،
قد يكون أو
لا يكون
قابلاً
للاستخدام
من قبل
تطبيقات
تحديد
الموقع
الجغرافي.
مثال:
--location="Berlin,
Germany" أو
--location="Basement, Room
3a"
أُضيف في
الإصدار 245.
--icon-name=الأيقونة
يأخذ اسم
أيقونة
لربطه
بالمستخدم،
متبعاً
المخطط
المحدد في
مواصفة
تسمية
الأيقونات[2].
أُضيف في
الإصدار 245.
--home-dir=المسار،
-dالمسار
يأخذ
مساراً
لاستخدامه
كمجلد منزل
للمستخدم.
لاحظ أن هذا
هو المجلد
الذي يُوصل
إليه مجلد
منزل
المستخدم
أثناء
ولوجه. ليس
هذا هو
المكان
الذي تُخزن
فيه بيانات
المستخدم
فعلياً،
انظر
--image-path=
لذلك. إذا لم
يُحدد،
فالمبدئي
هو /home/$USER.
أُضيف في
الإصدار 245.
--uid=المعرف_UID
يأخذ
معرف
مستخدم
يونكس (UID)
رقمياً
مفضلاً
لتعيينه
لهذا
المستخدم.
إذا كان
سيتم إنشاء
مستخدم
بالمعرف
المحدد
وكان هذا
المعرف
مستخدماً
بالفعل من
قبل مستخدم
آخر في
النظام
المحلي،
فسيُرفض
إنشاء مجلد
المنزل. ومع
ذلك، لاحظ
أنه إذا
استُخدم
مجلد
المنزل بعد
إنشائه في
نظام مختلف
وكان
المعرف
المضبط
مستخدماً
من قبل
مستخدم آخر
هناك، فقد
يقوم
systemd-homed
بتعيين
معرف مختلف
للمستخدم
في ذلك
النظام. يجب
أن يكون
المعرف
المحدد
خارج نطاق
مستخدمي
النظام.
ويوصى
باستخدام
نطاق
المعرفات 60001...60513
لهذا الغرض.
إذا لم
يُحدد،
فسيُختار
المعرف
آلياً. إذا
وُجد أن
مجلد
المنزل
مملوك
لمعرف
مختلف عند
الولوج،
فستُغير
ملكية مجلد
المنزل وكل
ما بداخله
آلياً قبل
اكتمال
الولوج.
لاحظ أن
تغيير هذا
الخيار
لمجلدات
المنزل
الموجودة
لا يكون له
أي تأثير
عموماً على
مجلدات
المنزل
التي سُجلت
محلياً
بالفعل (لها
ربط (binding) محلي)،
حيث إن
المعرف
المستخدم
لحساب في
النظام
المحلي
يُحدد عند
تنشيط مجلد
المنزل
لأول مرة
عليه، ثم
يظل سارياً
حتى يُزال
مجلد
المنزل.
لاحظ أن
المستخدمين
الذين
يديرهم systemd-homed
لديهم
دائماً
مجموعة
مطابقة
مرتبطة
بنفس الاسم
بالإضافة
إلى معرف
مجموعة (GID)
يطابق معرف
المستخدم (UID).
وبالتالي،
لا يُسمح
بضبط معرف
المجموعة
بشكل
منفصل.
أُضيف في
الإصدار 245.
--member-of=المجموعة،
-G
المجموعة
يأخذ
قائمة
مفصولة
بفاصلات
لمجموعات
يونكس
المساعدة
التي ينتمي
إليها هذا
المستخدم.
مثال:
--member-of=wheel
لتزويد
المستخدم
بامتيازات
المدير.
لاحظ أن
systemd-homed
لا يدير أي
مجموعات
بخلاف
المجموعة
التي تطابق
اسم
المستخدم
ومعرفه
الرقمي UID/GID.
وبالتالي
يجب تسجيل
أي مجموعات
مدرجة هنا
بشكل
مستقل، على
سبيل
المثال
باستخدام
groupadd(8).
وتُتجاهل
أي مجموعات
غير موجودة.
يمكن
استخدام
هذا الخيار
أكثر من
مرة، وفي
هذه الحالة
تُجمع جميع
قوائم
المجموعات
المحددة.
إذا كان
المستخدم
حالياً
عضواً في
مجموعة غير
مدرجة،
فسيُزال
المستخدم
من تلك
المجموعة.
أُضيف في
الإصدار 245.
--capability-bounding-set=القدرات،
--capability-ambient-set=القدرات
تأخذ هذه
الخيارات
قائمة
مفصولة
بمسافات
لقدرات
العمليات
(مثلاً
CAP_WAKE_ALARM،
CAP_BLOCK_SUSPEND، ...) التي
يجب ضبطها
في مجموعات
القدرات
المحيطة
والمحددة
لجميع
جلسات
المستخدم.
انظر
capabilities(7)
لمزيد من
التفاصيل
حول مفهوم
القدرات.
يمكن
استخدام
هذه
الخيارات
أكثر من
مرة، وفي
هذه الحالة
تُجمع
القوائم
المحددة.
إذا بدأت
المعلمة
بحرف "~"
فسيُعكس
التأثير:
حيث تُسقط
القدرة
المحددة من
المجموعة
المعينة.
أُضيف في
الإصدار 254.
--access-mode=الوضع
يأخذ وضع
وصول
لملفات
يونكس
مكتوباً
بالنظام
الثماني.
يضبط وضع
الوصول
لمجلد
المنزل
نفسه. لاحظ
أن هذا
يُستخدم
فقط عند
إنشاء
المجلد
لأول مرة،
ويمكن
للمستخدم
تغيير ذلك
في أي وقت
لاحقاً.
مثال:
--access-mode=0700
أُضيف في
الإصدار 245.
--umask=القناع
يأخذ
قناع وضع
الوصول
(بالصيغة
الثمانية)
ليُطبق على
الملفات
والمجلدات
المنشأة
حديثاً
للمستخدم
("umask"). إذا
ضُبط، فإنه
يتحكم في
قناع umask
الأولي
لجميع
جلسات ولوج
المستخدم،
مع إمكانية
تجاوز
القيم
المبدئية
للنظام.
أُضيف في
الإصدار 245.
--skel=المسار
يأخذ
مسار نظام
ملفات إلى
دليل. يحدد
دليل
الهيكل (skeleton)
لبدء دليل
المنزل به.
تُنسخ جميع
الملفات
والأدلة
الموجودة
في المسار
المحدد إلى
أي دليل
منزل يُنشأ
حديثا. وإذا
لم يحدد،
فإنه
يستخدم /etc/skel/
مبدئيا.
أُضيف في
الإصدار 245.
--shell=الصدفة
يأخذ
مسار نظام
ملفات. يحدد
الملف
التنفيذي
للصدفة
لتشغيله
عند الولوج
عبر
الطرفية.
وإذا لم
يحدد، فإنه
يستخدم /bin/bash
مبدئيا.
أُضيف في
الإصدار 245.
--setenv=المتغير[=القيمة]
يأخذ
تعيين
متغير بيئة
لضبطه
لجميع
عمليات
المستخدم.
يمكن
استخدامه
عدة مرات
لضبط
متغيرات
بيئة
متعددة. عند
حذف "=" و
القيمة،
ستُستخدم
قيمة
المتغير
الذي يحمل
نفس الاسم
في بيئة
البرنامج.
لاحظ أن
عددا من
الإعدادات
الأخرى
تؤدي أيضا
إلى ضبط
متغيرات
البيئة
للمستخدم،
بما في ذلك
--email= و --timezone= و --language=.
أُضيف في
الإصدار 245.
--timezone=المنطقة_الزمنية
يأخذ اسم
موقع منطقة
زمنية لضبط
المنطقة
الزمنية
للمستخدم
المحدد.
عندما يلج
المستخدم،
يُبدأ
متغير
البيئة
$TZ من
هذا
الإعداد.
مثال:
--timezone=Europe/Amsterdam
سيؤدي إلى
متغير
البيئة
"TZ=:Europe/Amsterdam".
(تُستخدم ":"
عمدا كجزء
من تخصيص
المنطقة
الزمنية،
انظر
tzset(3).)
أُضيف في
الإصدار 245.
--language=اللغة
يأخذ
قائمة من
اللغات
التي
يفضلها
المستخدم
مفصولة
بفاصلة أو
نقطتين،
مرتبة حسب
الأولوية
التنازلية.
تُبدأ
متغيرات
البيئة
$LANG و
$LANGUAGE من هذه
القيمة عند
الولوج،
وبالتالي
تُقبل هنا
القيم
المناسبة
لمتغيرات
البيئة
هذه، على
سبيل
المثال
--language=de_DE.UTF-8. يمكن
استخدام
هذا الخيار
أكثر من
مرة، وفي
هذه الحالة
تُسلسل
قوائم
اللغات.
أُضيف في
الإصدار 245.
--default-area=المنطقة
يأخذ نصا
يحدد
"منطقة"
دليل منزل
لاستخدامها
مبدئيا.
المناطق هي
أدلة منزل
ثانوية
داخل دليل
المنزل
الرئيس
للمستخدم.
عند
الولوج،
يمكن
للمستخدم
تحديد
المنطقة
التي يرغب
في الولوج
إليها، مما
يضمن ضبط
متغير
البيئة
$HOME
إلى ~/Areas/
ملحوقا
باسم
المنطقة.
للحصول
على تفاصيل
حول مفهوم
المنطقة،
انظر pam_systemd_home(8).
لاحظ أن هذا
الخيار
يحدد
القيمة
المبدئية
فقط، والتي
يمكن
تخطيها وقت
الولوج.
عند تحديد
هذا الخيار
بنص فارغ
كقيمة،
تُزال أي
منطقة
مبدئية
أُعلنت
سابقا من
سجل
المستخدم.
أُضيف في
الإصدار 258.
خصائص سجل مستخدم الاستيثاق¶
--ssh-authorized-keys=المفاتيح
إما أن
يأخذ سطر
مفتاح SSH مخول
لربطه بسجل
المستخدم
أو حرف "@"
متبوعا
بمسار ملف
لقراءة سطر
واحد أو
أكثر من هذه
السطور منه.
تُتاح
مفاتيح SSH
المضبوطة
بهذه
الطريقة لـ SSH
للسماح
بالوصول
إلى دليل
المنزل
وسجل
المستخدم
هذا. يمكن
استخدام
هذا الخيار
أكثر من مرة
لضبط
مفاتيح SSH
متعددة.
أُضيف في
الإصدار 245.
--pkcs11-token-uri=المسار
يأخذ
مسار PKCS#11 وفق RFC 7512
يشير إلى
رمز أمان
(مثل YubiKey أو
بطاقة PIV ذكية)
يجب أن يكون
قادرا على
فك قفل حساب
المستخدم.
يجب أن يشير
مسار رمز
الأمان إلى
رمز أمان
يحتوي على
زوج واحد
بالضبط من
شهادة X.509
ومفتاح خاص.
يُنشأ بعد
ذلك مفتاح
سري
عشوائي،
ويُعمى
باستخدام
المفتاح
العام
لشهادة X.509،
ويُخزن
كجزء من سجل
المستخدم.
وفي وقت
الولوج،
تُفك
تعميته
باستخدام
وحدة PKCS#11 ثم
يُستخدم
لفك قفل
الحساب
والموارد
المرتبطة
به. انظر
أدناه
للحصول على
مثال
لكيفية
إعداد
الاستيثاق
باستخدام
رمز أمان.
بدلا من
مسار PKCS#11
صالح، يمكن
تحديد
النصوص
الخاصة "list" و
"auto". إذا مُرر
"list"، يُعرض
جدول موجز
لرموز عتاد
PKCS#11 المناسبة
والموصلة
حاليا، مع
مساراتها.
وإذا مُرر
"auto"، يُختار
رمز عتاد PKCS#11
مناسب آليا
(ستفشل هذه
العملية
إذا لم
يُكتشف رمز
واحد مناسب
بالضبط).
الخيار
الأخير هو
اختصار
مفيد
للحالة
الأكثر
شيوعا حيث
يكون هناك
رمز عتاد PKCS#11
واحد موصل.
لاحظ أن
العديد من
رموز أمان
العتاد
تدعم كلا من
PKCS#11/PIV و FIDO2 مع ملحق
"hmac-secret" (على
سبيل
المثال:
سلسلة YubiKey 5)،
كما هو
مدعوم في
الخيار --fido2-device=
أدناه. كلتا
الآليتين
قويتان
بشكل
مماثل، على
الرغم من أن
FIDO2 هي
التقنية
الأحدث.
تتمتع رموز
PKCS#11/PIV بميزة
إمكانية
التعرف
عليها قبل
الاستيثاق،
وبالتالي
يمكن
استخدامها
للإشارة
إلى هوية
المستخدم
لاستخدامها
في الولوج،
وهو ما لا
يسمح به FIDO2.
تتطلب
أجهزة PKCS#11/PIV
عموما
التهيئة (أي
تخزين زوج
مفاتيح
خاص/عام
عليها،
انظر
المثال
أدناه) قبل
استخدامها؛
أما رموز
أمان FIDO2 فلا
تتطلب ذلك
عموما،
وتعمل فور
توصيلها.
أُضيف في
الإصدار 245.
--fido2-credential-algorithm=نص
تحديد
خوارزمية COSE
المستخدمة
في إنشاء
بيانات
الاعتماد.
القيمة
المبدئية
هي "es256". القيم
المدعومة
هي "es256" و "rs256" و
"eddsa".
تشير "es256"
إلى ECDSA عبر NIST P-256
مع SHA-256. بينما
تشير "rs256" إلى
RSA بطول 2048 بت مع
حشوة PKCS#1.5 و SHA-256.
وتشير "eddsa"
إلى EDDSA عبر Curve25519
مع SHA-512.
لاحظ أن
المستوثِق
الخاص بك قد
يختار عدم
دعم بعض
الخوارزميات.
أُضيف في
الإصدار 251.
--fido2-device=مسار
يأخذ
مسارا
لجهاز Linux "hidraw"
(مثل /dev/hidraw1)،
يشير إلى
رمز أمان FIDO2
يدعم ملحق
"hmac-secret" الذي
يجب أن يكون
قادرا على
فك قفل حساب
المستخدم.
تُنشأ قيمة
تمليح
عشوائية
على المضيف
وتُمرر إلى
جهاز FIDO2،
الذي يحسب
هاش HMAC
للتمليح
باستخدام
مفتاح سري
داخلي.
تُستخدم
النتيجة
بعد ذلك
كمفتاح لفك
قفل حساب
المستخدم.
يُدرج
التمليح
العشوائي
في سجل
المستخدم،
بحيث يمكن
تمريره إلى
رمز FIDO2 مرة
أخرى كلما
دعت الحاجة
إلى
الاستيثاق.
بدلا من
مسار صالح
لجهاز FIDO2 "hidraw"،
يمكن تحديد
النصوص
الخاصة "list" و
"auto". إذا مُرر
"list"، يُعرض
جدول موجز
لأجهزة FIDO2
المكتشفة
والمناسبة.
وإذا مُرر
"auto"، يُختار
رمز FIDO2 مناسب
آليا، إذا
اكتُشف رمز
واحد
بالضبط.
الخيار
الأخير هو
اختصار
مفيد
للحالة
الأكثر
شيوعا حيث
يكون هناك
رمز عتاد FIDO2
واحد موصل.
لاحظ أن
أجهزة FIDO2
المناسبة
لهذا
الخيار يجب
أن تدعم
ملحق "hmac-secret".
تدعمه معظم
الأجهزة
الحالية
(مثل سلسلة YubiKey
5). إذا لم
يُدعم
الملحق،
فلا يمكن
استخدام
الجهاز لفك
قفل أدلة
المنزل.
يمكن
إزالة جهاز
FIDO2 لاحقا عن
طريق ضبط
مسار
الجهاز على
نص فارغ (على
سبيل
المثال homectl update $USER
--fido2-device="").
لاحظ أن
العديد من
رموز أمان
العتاد
تدعم كلا من
FIDO2 و PKCS#11/PIV
(وبالتالي
يمكن
استخدامها
مع --fido2-device= أو
--pkcs11-token-uri=)،
للنقاش
انظر
أعلاه.
أُضيف في
الإصدار 246.
--fido2-with-client-pin=قيمة_منطقية
عند
تسجيل رمز
أمان FIDO2،
يتحكم في ما
إذا كان
سيُطلب من
المستخدم
إدخال رمز PIN
عند فك قفل
الحساب
(ميزة "clientPin" في
FIDO2). القيمة
المبدئية
هي "yes".
(ملاحظة: هذا
الإعداد
ليس له
تأثير إذا
كان رمز
الأمان لا
يدعم ميزة
"clientPin" على
الإطلاق،
أو لا يسمح
بتمكينها
أو تعطيلها.)
أُضيف في
الإصدار 249.
--fido2-with-user-presence=قيمة_منطقية
عند
تسجيل رمز
أمان FIDO2،
يتحكم في ما
إذا كان
سيُطلب من
المستخدم
التحقق من
الحضور
(النقر على
الرمز،
ميزة "up" في FIDO2)
عند فك قفل
الحساب.
القيمة
المبدئية
هي "yes".
(ملاحظة: هذا
الإعداد
ليس له
تأثير إذا
كان رمز
الأمان لا
يدعم ميزة
"up" على
الإطلاق،
أو لا يسمح
بتمكينها
أو تعطيلها.)
أُضيف في
الإصدار 249.
--fido2-with-user-verification=قيمة_منطقية
عند
تسجيل رمز
أمان FIDO2،
يتحكم في ما
إذا كان
سيُطلب
التحقق من
المستخدم
عند فك قفل
الحساب
(ميزة "uv" في FIDO2).
القيمة
المبدئية
هي "no".
(ملاحظة: هذا
الإعداد
ليس له
تأثير إذا
كان رمز
الأمان لا
يدعم ميزة
"uv" على
الإطلاق،
أو لا يسمح
بتمكينها
أو تعطيلها.)
أُضيف في
الإصدار 249.
--recovery-key=قيمة_منطقية
يقبل
قيمة
منطقية
كمعامل. في
حال
تفعيله،
يُضبط
مفتاح
استرداد
للحساب.
مفتاح
الاسترداد
هو مفتاح
وصول
يُنشئه
الحاسوب
ويمكن
استخدامه
لاستعادة
الوصول إلى
الحساب إذا
نُسيت كلمة
السر أو
فُقد رمز
الاستيثاق.
يُنشأ
المفتاح
ويُعرض على
الشاشة،
ويجب
طباعته أو
نقله إلى
مكان آمن
بطريقة
أخرى. يمكن
إدخال
مفتاح
الاسترداد
بدلا من
كلمة السر
العادية
لفك قفل
الحساب.
أُضيف في
الإصدار 247.
خصائص سجل مستخدم دليل BLOB¶
--blob=المسار،
-b المسار،
--blob=اسم_الملف=المسار،
-b
اسم_الملف=المسار
يقبل إما
مسار دليل،
أو اسم ملف
متبوعا
بمسار ملف.
إذا حُدد
مسار دليل
فقط،
فسيُستبدل
دليل blob
بالكامل
للمستخدم
بالمسار
المحدد.
لاحظ أن هذا
الاستبدال
يُنفذ قبل
تطبيق
المعالجات
الخاصة بكل
ملف، مما
يعني أن هذه
المعالجات
ستُطبق فوق
الدليل
المحدد. إذا
حُدد اسم
ملف ومسار
ملف،
فسيُكتب
فوق ملف blob
الواحد
المحدد
بالمسار
المحدد. إذا
ترك فارغا
تماما،
فسيُفرغ
دليل blob
بالكامل
(مما يعيد
أيضا ضبط
جميع
الأعلام
السابقة
المتعلقة
بـ blob حتى هذه
النقطة). إذا
حُدد اسم
ملف ولكن
المسار
المقابل
فارغ،
فسيُحذف
هذا الملف
الواحد من
دليل blob.
تُنفذ جميع
التغييرات
في نسخ
مؤقتة من
الملفات
المحددة في
الأدلة،
مما يعني أن
الأصول
المحددة في
سطر
الأوامر لا
تُعدل. انظر
أدلة Blob لسجل
المستخدم[3]
لمزيد من
المعلومات
حول أدلة blob.
أُضيف في
الإصدار 256.
--avatar=المسار،
--login-background=المسار
يقبل
مسار ملف. في
حال ضبطه،
يُستخدم
الملف
المحدد
للكتابة
فوق الملف
المقابل في
دليل blob الخاص
بالمستخدم.
إذا كان
فارغا،
يُحذف
الملف
المقابل من
دليل blob. في
الأساس،
هذه
الخيارات
هي
اختصارات
لـ
--blob=اسم_الملف=المسار
لأسماء
الملفات
المعروفة
المحددة في
أدلة Blob لسجل
المستخدم[3].
أُضيف في
الإصدار 256.
خصائص سجل مستخدم إدارة الحساب¶
--locked=قيمة_منطقية
يأخذ
قيمة
منطقية
كمعامل.
يحدد ما إذا
كان يجب قفل
حساب
المستخدم
هذا. إذا
كانت
القيمة
صائبة،
يُمنع
الولوج إلى
هذا
الحساب،
وإذا كانت
خاطئة
(المبدئي)
يُسمح به
(بالطبع،
فقط إذا نجح
التخويل
بطريقة
أخرى).
أُضيف في
الإصدار 245.
--not-before=الختم_الزمني،
--not-after=الختم_الزمني
تأخذ هذه
الخيارات
نص ختم
زمني،
بالتنسيق
الموثق في
systemd.time(7) وتضبط
نقاطا
زمنية
قبلها
وبعدها لا
يُسمح
بالولوج
إلى هذا
الحساب.
أُضيف في
الإصدار 245.
--rate-limit-interval=ثوانٍ،
--rate-limit-burst=عدد
يضبط حدا
لمعدل
محاولات
الاستيثاق
لهذا
المستخدم.
إذا حاول
المستخدم
الاستيثاق
أكثر من
العدد
المحدد،
على نظام
معين، خلال
الفترة
الزمنية
المحددة،
يُرفض
الاستيثاق
حتى تنتهي
الفترة
الزمنية.
المبدئي هو 10
مرات لكل
دقيقة
واحدة.
أُضيف في
الإصدار 245.
--password-hint=نص
يأخذ
تلميحا
لكلمة السر
لتخزينه
جنبا إلى
جنب مع سجل
المستخدم.
يُخزن هذا
النص بحيث
لا يمكن
الوصول
إليه إلا
للمستخدمين
ذوي
الامتيازات
والمستخدم
نفسه ولا
يمكن
للمستخدمين
الآخرين
الاستعلام
عنه. مثال:
--password-hint="اسم أول
حيوان أليف
لي".
أُضيف في
الإصدار 245.
--enforce-password-policy=قيمة_منطقية،
-P
يأخذ
قيمة
منطقية
كمعامل.
يضبط ما إذا
كان سيُفرض
تطبيق
سياسة كلمة
سر النظام
لهذا
المستخدم،
فيما يتعلق
بجودة وقوة
كلمات السر
المختارة.
المبدئي هو
التشغيل.
-P
هو اختصار
لـ
--enforce-password-policy=no.
أُضيف في
الإصدار 245.
--password-change-now=قيمة_منطقية
يأخذ
قيمة
منطقية
كمعامل. إذا
كانت
القيمة
صائبة،
سيُطلب من
المستخدم
تغيير كلمة
سره عند
الولوج
التالي.
أُضيف في
الإصدار 245.
--password-change-min=الزمن،
--password-change-max=الزمن،
--password-change-warn=الزمن،
--password-change-inactive=الزمن
يأخذ كل
خيار من هذه
الخيارات
تعيين فترة
زمنية
كمعامل
(بالصيغة
الموثقة في
systemd.time(7)) ويضبط
جوانب
مختلفة من
سياسة
انتهاء
صلاحية
كلمة سر
المستخدم.
تحديدا،
يضبط
--password-change-min=
مقدار
الوقت الذي
يجب أن يمر
بعد تغيير
كلمة سر
المستخدم
حتى يمكن
تغيير كلمة
السر مرة
أخرى. إذا
حاول
المستخدم
تغيير كلمة
سره قبل
مرور هذا
الوقت،
تُرفض
المحاولة.
يضبط
--password-change-max=
متى تنتهي
صلاحية
كلمة السر
بعد
تغييرها
وتحتاج إلى
تغييرها
مرة أخرى.
بعد مرور
هذا الوقت،
لا يمكن
متابعة
الولوج إلا
بعد تغيير
كلمة السر.
يحدد
--password-change-warn=
مقدار
الوقت الذي
يسبق الوقت
المضبوط في
--password-change-max= والذي
يُحذر فيه
المستخدم
عند الولوج
لتغيير
كلمة سره
لأنها
ستنتهي
صلاحيتها
قريبا.
أخيرا،
يضبط
--password-change-inactive=
الوقت الذي
يجب أن يمر
بعد انتهاء
صلاحية
كلمة السر
حتى لا
يُسمح
للمستخدم
بالولوج أو
تغيير كلمة
السر بعد
الآن. لاحظ
أن هذه
الخيارات
تنطبق فقط
على
الاستيثاق
بكلمة
السر، ولا
تنطبق على
أشكال
الاستيثاق
الأخرى،
مثل
الاستيثاق
برموز
الأمان
القائم على
PKCS#11.
أُضيف في
الإصدار 245.
خصائص سجل مستخدم إدارة الموارد¶
--disk-size=بايتات
إما أن
يأخذ حجما
بالبايت
كمعامل
(ربما
باستخدام
اللاحقات
المعتادة K،
M، G، ... لقيم
الأساس 1024)،
أو قيمة
مئوية، أو
النصوص
الخاصة "min"
أو "max"،
ويضبط
مساحة
القرص
المخصصة
للمستخدم.
إذا حُددت
قيمة مئوية
(أي المعامل
الملحوق بـ
"%") فستؤخذ
بالنسبة
إلى مساحة
القرص
المتاحة
لنظام
الملفات
الخلفي. إذا
حُدد بـ "min"،
فإنه يخصص
الحد
الأدنى من
مساحة
القرص التي
تسمح بها
قيود نظام
الملفات
الخلفي
والحدود
الأخرى،
وعند
تحديده بـ
"max" يخصص
أقصى مساحة
قرص متاحة.
إذا
استُخدم
محرك LUKS2، فإن
هذا يضبط
حجم ملف loopback
ونظام
الملفات
الموجود
بداخله.
وبالنسبة
لمحركات
التخزين
الأخرى،
يضبط حصة
القرص (quota)
باستخدام
منطق الحصص
الأصلي
لنظام
الملفات،
إذا كان
متاحا. وإذا
لم يحدد،
فإنه
يستخدم 85% من
مساحة
القرص
المتاحة
لمحرك LUKS2
ومبدئيا لا
توجد حصة
للآخرين.
أُضيف في
الإصدار 245.
--nice=الأولوية
يأخذ
أولوية
الجدولة
الرقمية ("nice
level") لتطبيقها
على عمليات
المستخدم
عند وقت
الولوج.
يأخذ قيمة
رقمية في
النطاق من -20
(أعلى
أولوية) إلى 19
(أقل أولوية).
أُضيف في
الإصدار 245.
--rlimit=الحد=القيمة[:القيمة]
يسمح
بضبط حدود
الموارد
لعمليات
هذا
المستخدم،
انظر
getrlimit(2)
لمزيد من
التفاصيل.
يأخذ اسم حد
المورد (مثل
"LIMIT_NOFILE") متبوعا
بعلامة
يساوي،
متبوعا بحد
رقمي.
اختياريا،
يمكن تحديد
حد رقمي
ثانٍ
مفصولا
بنقطتين.
إذا حُدد
اثنان،
فهذا يشير
إلى الحدود
اللينة
والصلبة
على
التوالي.
إذا حُدد حد
واحد فقط،
فإن
الإعداد
يضبط كلا
الحدين معا.
أُضيف في
الإصدار 245.
--tasks-max=المهام
يأخذ
عددا صحيحا
غير سالب
وغير صفري
كمعامل.
يضبط الحد
الأقصى
لعدد
المهام (أي
الخيوط،
حيث تكون كل
عملية خيطا
واحدا على
الأقل) التي
قد يمتلكها
المستخدم
في أي وقت
معين. ينطبق
هذا الحد
على جميع
المهام
المتفرعة
من جلسات
المستخدم،
حتى لو
غيروا هوية
المستخدم
عبر
su(1) أو
أداة
مماثلة.
استخدم
--rlimit=LIMIT_NPROC=
لوضع حد
للمهام
التي تعمل
فعليا تحت
معرف
المستخدم UID،
وبالتالي
استبعاد أي
عمليات
أبناء قد
غيرت هوية
المستخدم.
يتحكم هذا
في إعداد
TasksMax=
لوحدة
شريحة systemd لكل
مستخدم user-$UID.slice.
انظر
systemd.resource-control(5)
لمزيد من
التفاصيل.
أُضيف في
الإصدار 245.
--memory-high=بايتات،
--memory-max=بايتات
ضبط حد
للذاكرة
التي قد
يستهلكها
المستخدم
على نظام ما
في أي وقت
معين
بالبايت
(تدعم
اللاحقات
المعتادة K،
M، G، ... بأساس 1024).
يشمل ذلك
جميع
الذاكرة
المستخدمة
من قبل
المستخدم
نفسه وجميع
العمليات
التي فرعها
والتي غيرت
بيانات
اعتماد
المستخدم.
يتحكم هذا
في إعدادات
MemoryHigh= و
MemoryMax=
لوحدة
شريحة systemd لكل
مستخدم user-$UID.slice.
انظر
systemd.resource-control(5)
لمزيد من
التفاصيل.
أُضيف في
الإصدار 245.
--cpu-weight=الوزن،
--io-weight=الوزن
ضبط
أوزان
جدولة
المعالج
والمدخلات/المخرجات
(IO) لعمليات
المستخدم،
بما في ذلك
العمليات
المتفرعة
من قبل
المستخدم
والتي غيرت
بيانات
اعتماد
المستخدم.
يأخذ قيمة
رقمية في
النطاق 1...10000.
يتحكم هذا
في إعدادات
CPUWeight= و
IOWeight=
لوحدة
شريحة systemd لكل
مستخدم user-$UID.slice.
انظر
systemd.resource-control(5)
لمزيد من
التفاصيل.
أُضيف في
الإصدار 245.
خصائص سجل مستخدم التخزين¶
--tmp-limit=بايتات،
--tmp-limit=نسبة_مئوية،
--dev-shm-limit=بايتات،
--dev-shm-limit=نسبة_مئوية
يتحكم في
حصة كل
مستخدم في /tmp/
و /dev/shm/ التي
تُطبق عند
ولوج
المستخدم.
يأخذ إما
قيمة مطلقة
بالبايت (مع
اللاحقات
المعتادة K،
M، G، T بأساس 1024)،
أو نسبة
مئوية. في
الحالة
الأخيرة،
يُطبق الحد
بالنسبة
إلى حجم
نظام
الملفات
المعني. لا
يُطبق هذا
الحد إلا
إذا كان
نظام
الملفات
المعني من
نوع "tmpfs" وليس
له تأثير
بخلاف ذلك.
لاحظ أنه
إذا لم
تُستخدم
هذه
الخيارات،
فقد تُفرض
حصة مبدئية
(عادة 80%.)
أُضيف في
الإصدار 258.
--storage=التخزين
يختار
آلية
التخزين
المراد
استخدامها
لدليل
المنزل هذا.
يأخذ واحدا
من "luks"، "fscrypt"،
"directory"، "subvolume"، "cifs".
للحصول على
تفاصيل حول
هذه
الآليات،
انظر أعلاه.
إذا أُنشئ
دليل منزل
جديد ولم
يُحدد نوع
التخزين
تحديدا،
فإن
homed.conf(5) يحدد
التخزين
المبدئي
المراد
استخدامه.
أُضيف في
الإصدار 245.
--image-path=المسار
يأخذ
مسار نظام
ملفات. يضبط
مكان وضع
دليل منزل
المستخدم.
عند
استخدام
تخزين LUKS2،
فإنه يشير
إلى مسار
ملف loopback، وإلا
فإنه يشير
إلى مسار
دليل
المنزل
(الذي قد
يكون في /home/ أو
أي نظام
ملفات آخر
يمكن
الوصول
إليه).
وعندما لا
يحدد، فإنه
يستخدم /home/$USER.home
مبدئيا عند
استخدام
تخزين LUKS و /home/$USER.homedir
لآليات
التخزين
الأخرى. غير
محدد لآلية
التخزين "cifs".
لاستخدام
تخزين LUKS2 على
جهاز كتلي
عادي (على
سبيل
المثال
ذاكرة USB) مرر
مسار
الجهاز
الكتلي هنا.
لا يُسمح
بتحديد
مسار لدليل
هنا عند
استخدام
تخزين LUKS2.
وبالمثل،
لا يُسمح
بتحديد
مسار لملف
عادي أو
عقدة جهاز
إذا
استُخدم أي
من محركات
التخزين
الخلفية
الأخرى.
أُضيف في
الإصدار 245.
--drop-caches=قيمة_منطقية
إفراغ
خبيئات
نظام ملفات
نظام
التشغيل
آليا عند
الخروج. هذا
مفيد
بالاشتراك
مع محرك
تخزين fscrypt
لضمان عدم
احتفاظ
نظام
التشغيل
بنسخ فُكت
تعميتها من
الملفات
والأدلة في
الذاكرة
(وإمكانية
الوصول
إليها) بعد
الخروج. هذا
الخيار
مدعوم أيضا
في
المحركات
الأخرى،
ولكن لا
ينبغي أن
يقدم أي
فائدة هناك.
المبدئي هو
الإيقاف،
إلا إذا كان
محرك
التخزين
المختار هو
fscrypt، حيث يكون
المبدئي هو
التشغيل.
لاحظ أن
إفراغ
خبيئات
نظام
التشغيل
سيؤثر سلبا
على أداء
نظام
التشغيل
لفترة
وجيزة بعد
الخروج.
أُضيف في
الإصدار 250.
خصائص سجل مستخدم تخزين LUKS¶
--fs-type=النوع
عند
استخدام
تخزين LUKS2،
يضبط نوع
نظام
الملفات
المراد
استخدامه
داخل حاوية
LUKS2 لدليل
المنزل.
واحد من "btrfs"،
"ext4"، "xfs". إذا
لم يحدد،
فإن
homed.conf(5) يحدد
نوع نظام
الملفات
المبدئي
المراد
استخدامه.
لاحظ أن "xfs"
غير موصى به
لأن دعمه
لتغيير حجم
نظام
الملفات
محدود
للغاية.
أُضيف في
الإصدار 245.
--luks-discard=قيمة_منطقية
عند
استخدام
تخزين LUKS2،
يضبط ما إذا
كان سيتم
تمكين ميزة
"التجاهل" (discard)
لنظام
الملفات.
إذا
فُعّلت،
سيقوم نظام
الملفات
الموجود
فوق حجم LUKS2
بإبلاغ
معلومات
الكتل
الفارغة
إلى LUKS2 وملف loopback
الموجود
أسفله، مما
يضمن إعادة
المساحة
الفارغة في
دليل
المنزل إلى
نظام
الملفات
الخلفي
أسفل حجم LUKS2،
مما ينتج
عنه ملف loopback
"خفيف" (sparse).
هذا الخيار
يكون معطلا
مبدئيا في
الغالب،
لأن هذا
يسمح
بالإفراط
في تخصيص
أدلة
المنزل مما
يؤدي إلى
أخطاء
إدخال/إخراج
إذا امتلأ
نظام
الملفات
الأساسي
بينما يريد
نظام
الملفات
العلوي
تخصيص كتلة.
مثل هذه
الأخطاء في
الإدخال/الإخراج
لا يتم
التعامل
معها بشكل
جيد بشكل
عام بواسطة
أنظمة
الملفات
ولا
التطبيقات.
عند
استخدام
تخزين LUKS2 فوق
أجهزة
كتلية
عادية (بدلا
من ملف loopback)
يكون منطق
التجاهل
مفعلا
مبدئيا.
أُضيف في
الإصدار 245.
--luks-offline-discard=قيمة_منطقية
مشابه لـ
--luks-discard=، يتحكم
في تقليم (trimming)
نظام
الملفات.
ومع ذلك،
بينما
يتحكم
--luks-discard=
فيما يحدث
عندما يكون
دليل
المنزل
نشطا،
يتحكم
--luks-offline-discard=
فيما يحدث
عندما يصبح
غير نشط، أي
ما إذا كان
سيتم
تقليم/تخصيص
التخزين
عند إلغاء
تنشيط دليل
المنزل. هذا
الخيار
يكون مفعلا
مبدئيا،
لضمان
تقليل
مساحة
القرص
أثناء عدم
ولوج
المستخدم.
أُضيف في
الإصدار 246.
--luks-extra-mount-options=الخيارات
يأخذ نصا
يحتوي على
خيارات وصل
إضافية
لاستخدامها
عند وصل حجم
LUKS. إذا حُدد،
فسيُلحق
هذا النص
بخيارات
الوصل
المبدئية
المضمنة.
المبدئي هو
"compress=zstd:1,noacl,user_subvol_rm_allowed".
أُضيف في
الإصدار 250.
--luks-cipher=الشفرة،
--luks-cipher-mode=الوضع،
--luks-volume-key-size=بايتات،
--luks-pbkdf-type=النوع،
--luks-pbkdf-hash-algorithm=الخوارزمية،
--luks-pbkdf-force-iterations=التكرارات،
--luks-pbkdf-time-cost=ثوانٍ،
--luks-pbkdf-memory-cost=بايتات،
--luks-pbkdf-parallel-threads=الخيوط،
--luks-sector-size=بايتات
يضبط
معايير
تعمية
مختلفة
لآلية
تخزين LUKS2.
انظر
cryptsetup(8)
للحصول على
تفاصيل حول
سمات محددة.
لاحظ أن homectl
يستخدم
البايتات
لحجم
المفتاح،
مثل /proc/crypto،
ولكن cryptsetup(8)
يستخدم
البتات.
أُضيف في
الإصدار 245.
--auto-resize-mode=
يضبط ما
إذا كان
سيتم تكبير
و/أو تصغير
نظام
الملفات
الخلفي
آليا عند
الولوج
والخروج.
يأخذ أحد
النصوص "off"،
"grow"، "shrink-and-grow".
ينطبق فقط
على محرك LUKS2
حاليا،
وإذا
استُخدم
نظام ملفات
btrfs بداخله
(لأنه حينها
فقط يُدعم
التكبير/التصغير
المباشر
لنظام
الملفات).
المبدئي هو
"shrink-and-grow" إذا
استُخدم LUKS2/btrfs،
وإلا فإنه
يكون معطلا
"off". إذا ضُبط
على "off"، فلن
يتم إجراء
أي
تصغير/تكبير
آلي أثناء
الولوج أو
الخروج. إذا
ضُبط على
"grow"، فسيتم
تكبير
منطقة
المنزل إلى
الحجم
المضبوط
عبر
--disk-size= إذا
كانت أصغر
حاليا. إذا
كانت تطابق
الحجم
المضبوط
بالفعل أو
أكبر منه،
فلن تُنفذ
أي عملية.
إذا ضُبط
على "shrink-and-grow"،
فسيتم أيضا
تغيير حجم
منطقة
المنزل
أثناء
الخروج إلى
الحد
الأدنى
للحجم الذي
تسمح به
مساحة
القرص
المستخدمة
وقيود نظام
الملفات.
يضمن هذا
الوضع أنه
أثناء
تنشيط
منطقة
المنزل،
يتم ضبط
حجمها على
الحجم
المختار،
ولكن أثناء
إلغاء
تنشيطها،
يتم ضغطها
لتشغل فقط
الحد
الأدنى
الممكن من
المساحة.
لاحظ أنه
إذا أُغلق
النظام
بشكل غير
طبيعي أو
إذا لم يخرج
المستخدم
بشكل نظيف،
فلن تتم
عملية
التصغير،
ويتعين على
المستخدم
الولوج/الخروج
مرة أخرى
قبل
تنفيذها
مرة أخرى.
أُضيف في
الإصدار 250.
--rebalance-weight=
يهيئ
معامل
الوزن
لمنطق
إعادة
توازن
المساحة
الحرة على
القرص.
ينطبق هذا
فقط على
الواجهة
الخلفية LUKS2
(بما أن
مساحة
القرص في LUKS2
تُخصص من
نظام ملفات
loopback لكل
مستخدم
بدلاً من
التخصيص
المباشر من
مجمع مشترك
كما في
الواجهات
الأخرى).
تُوزع
المساحة
الحرة في
مناطق
المنزل
النشطة
ومساحة
التخزين
الخلفية في
فترات
منتظمة، مع
مراعاة
قيمة الوزن
المحددة
هنا. يتوقع
قيمة صحيحة
بين 1 و 10000، أو
السلسلة
الخاصة "off".
إذا لم
يُحدد،
فإنه يفترض 100
افتراضيًا.
يُستخدم
الوزن
لتوسيع
المساحة
الحرة
المتاحة:
منطقة
المنزل
بوزن 200 ستحصل
على ضعف
المساحة
التي تحصل
عليها
منطقة بوزن 100.
سيُخصص
لنظام
الملفات
الخلفي
مساحة بوزن 20.
إذا ضُبط
على "off" فلن
يتم توزيع
المساحة
تلقائيًا.
لاحظ أن
تغيير
الحجم
صراحةً
(بأمر
homectl resize)
سيؤدي
لإيقاف
إعادة
التوازن
التلقائي
ضمنيًا.
لإعادة
تفعيله،
استخدم
--rebalance-weight=
مع معامل
فارغ.
أُضيف في
الإصدار 250.
خصائص سجل المستخدم الخاصة بالوصل¶
--nosuid=BOOL, --nodev=BOOL,
--noexec=BOOL
يهيئ
خيارات
الوصل "nosuid" و
"nodev" و "noexec"
للأدلة
المنزلية.
افتراضيًا،
يتم تفعيل
"nodev" و "nosuid"،
بينما يكون
"noexec" معطلاً.
للتفاصيل
راجع
mount(8).
أُضيف في
الإصدار 245.
خصائص سجل مستخدم CIFS¶
--cifs-domain=DOMAIN,
--cifs-user-name=USER, --cifs-service=SERVICE,
--cifs-extra-mount-options=OPTIONS
يهيئ
نطاق
ومستخدم
مشاركة
ملفات
ويندوز (CIFS)
لربطهما
بالدليل
المنزلي،
وكذلك
مشاركة
الملفات
("الخدمة")
التي ستوصل
كدليل.
يُستخدم
الأخير عند
اختيار
تخزين "cifs".
يجب تحديد
المشاركة
بالتنسيق
"//
host/
share/
directory/...".
جزء الدليل
اختياري؛
إذا لم
يُحدد،
فسيُوضع
الدليل
المنزلي في
المستوى
الأعلى
للمشاركة.
يتيح
--cifs-extra-mount-options=
تحديد
خيارات وصل
إضافية،
راجع
mount.cifs(8)
للتفاصيل.
أُضيف في
الإصدار 245.
خصائص سجل سلوك تسجيل الدخول¶
--stop-delay=SECS
يهيئ
الوقت الذي
سيستمر فيه
مدير خدمة
المستخدم
في العمل
بعد انتهاء
جميع
جلساته.
يُضبط
الافتراضي
في
logind.conf(5) (على
الرغم من
أنه يكون 0
افتراضيًا
لتخزين LUKS2
على
الوسائط
القابلة
للإزالة).
الوقت
الأطول
يجعل
عمليات
تسجيل
الدخول
المتكررة
والسريعة
أكثر كفاءة.
أُضيف في
الإصدار 245.
--kill-processes=BOOL
يحدد ما
إذا كان
سيتم إنهاء
جميع
عمليات
المستخدم
عند تسجيل
الخروج.
يُضبط
الافتراضي
في
logind.conf(5).
أُضيف في
الإصدار 245.
--auto-login=BOOL
يأخذ
وسيطًا
منطقيًا.
يحدد ما إذا
كان يجب على
الواجهة
الرسومية
تسجيل دخول
هذا
المستخدم
تلقائيًا.
الافتراضي
هو الإيقاف
(off). يُعطل
الدخول
التلقائي
إذا تم
تمييز أكثر
أو أقل من
مستخدم
واحد بهذه
الطريقة.
أُضيف في
الإصدار 245.
--session-launcher=LAUNCHER
يأخذ
وسيطًا
نصيًا. يحدد
ملف .desktop لمشغل
الجلسة
المفضل
للمستخدم
(مثل "gnome" أو
"plasma"). يقرأ
مدير العرض
هذا
الإعداد
لاختيار
الجلسة
الافتراضية
عند الدخول.
أُضيف في
الإصدار 256.
--session-type=TYPE
يأخذ
وسيطًا
نصيًا. يحدد
نوع الجلسة
المفضل (مثل
"x11" أو "wayland").
يستخدمه
مدير العرض
لاختيار
نوع الجلسة
الافتراضي.
أُضيف في
الإصدار 256.
الأوامر¶
الأوامر
التالية
مفهومة:
list
يسرد
جميع
الأدلة
المنزلية
(مع تفاصيل
موجزة) التي
تديرها
خدمة systemd-homed
حالياً. يتم
تنفيذ هذا
الأمر
افتراضياً
إذا لم
يُحدد غيره.
(ملاحظة:
القائمة لا
تشمل
المستخدمين
المدارين
بواسطة
أنظمة
فرعية أخرى
مثل
مستخدمي
النظام في
/etc/passwd).
أُضيف في
الإصدار 245.
activate USER [USER...]
تنشيط
دليل منزلي
أو أكثر.
سيتم إتاحة
الأدلة تحت
نقاط الوصل
الخاصة بها
(غالباً /home/$USER).
يظل المنزل
نشطاً إلى
أن يُلغى
تنشيطه
صراحةً
(بأمر deactivate) أو
عند تسجيل
خروج
المستخدم.
تنشيط
الدليل
المنزلي
يتضمن
عمليات
تعتمد على
آلية
التخزين. في
LUKS2 يشمل ذلك
عادةً: طلب
كلمة
المرور،
إعداد جهاز
loopback، تنشيط
وحدة LUKS2، فحص
نظام
الملفات
ووصله،
وتغيير
الملكية
إلى معرف
المستخدم/المجموعة
الصحيح.
أُضيف في
الإصدار 245.
deactivate USER [USER...]
إلغاء
تنشيط دليل
منزلي أو
أكثر؛ وهذا
يعكس تأثير
أمر
activate.
أُضيف في
الإصدار 245.
inspect USER [USER...]
عرض
تفاصيل حول
الأدلة
المنزلية
المحددة،
بما في ذلك
بيانات وقت
التشغيل
(الحالة،
استخدام
القرص، إلخ).
استخدم
--json=
لعرض سجل
المستخدم
بتنسيق JSON.
أُضيف في
الإصدار 245.
authenticate USER [USER...]
التحقق
من بيانات
المصادقة
للدليل
المنزلي.
يطلب كلمة
مرور
للتحقق من
قدرتها على
فك قفل
الدليل،
دون تغيير
حالة نشاطه
الحالية.
أُضيف في
الإصدار 245.
create USER, create
--identity=PATH [USER]
إنشاء
دليل منزلي
أو حساب
مستخدم
جديد
بالاسم
المحدد، مع
التحكم في
خصائصه
باستخدام
الخيارات
المذكورة
سابقاً.
يجب أن
يتبع اسم
المستخدم
المختار
الصيغة
الصارمة
الموضحة في
صيغة أسماء
المستخدمين/المجموعات.
أُضيف في
الإصدار 245.
adopt PATH [PATH...]
تبني
أدلة
منزلية
موجودة
مسبقاً (مثل
ملفات *.home أو
مجلدات *.homedir)
وجعلها
متاحة
للدخول
محلياً دون
نقلها من
مكانها.
أُضيف في
الإصدار 258.
register FILE [FILE...]
تسجيل
مستخدم أو
أكثر دون
إنشاء أدلة
منزلية
لهم، وذلك
باستخدام
ملفات سجل JSON.
يجعل
التسجيل
المستخدم
متاحاً على
النظام
المحلي دون
إنشاء مجلد
جديد، وهو
مفيد لنقل
صلاحيات
الوصول
لمستخدم
أُنشئ على
نظام آخر.
إليك مثال
على إتاحة
حساب محلي
على نظام
بعيد
باستخدام
مشاركة CIFS
(كجذر):
أكمل
كمستخدم
عادي "lennart":
$ homectl update lennart --ssh-authorized-keys=... -N --storage=cifs --cifs-service="//$HOSTNAME/lennart"
$ homectl get-signing-key | ssh targetsystem homectl add-signing-key --key-name="$HOSTNAME".public
$ homectl inspect -E lennart | ssh targetsystem homectl register -
$ ssh lennart@targetsystem
يضمن هذا
أولاً
تعريف
الحساب لـ
Samba، ثم يهيئ CIFS
كتخزين
افتراضي،
ويضيف
مفتاح
توقيع
الحساب
للنظام
المستهدف
ويسجل
الحساب
هناك.
أخيراً يتم
تسجيل
الدخول
للنظام
البعيد
الذي سيتصل
بدوره عبر CIFS
للوصول
للمنزل.
أُضيف في
الإصدار 258.
unregister USER...
إلغاء
تسجيل حساب
أو أكثر؛
هذا يزيل
السجل فقط
ولا يحذف
الدليل
المنزلي.
يتحول
السجل إلى
حالة "غير
مثبت" (unfixated)
ويفقد
ارتباطه
بالنظام
المحلي إلى
أن يتم
الدخول
إليه
مجدداً.
أُضيف في
الإصدار 258.
remove USER
حذف دليل
منزلي/حساب
مستخدم؛
يؤدي هذا
لحذف سجل
المستخدم
والدليل
المنزلي
بمحتوياته
تماماً.
أُضيف في
الإصدار 245.
update USER, update
--identity=PATH [USER]
تحديث
حساب
مستخدم أو
دليل
منزلي؛
استخدم
الخيارات
المتاحة
لتعديل
الخصائص أو
قدم سجلاً
كاملاً عبر
--identity=.
ملاحظة: لا
يُسمح
بتعديل
السجلات
غير
الموقعة
بمفتاح خاص
محلي، إلا
إذا كان
السجل
الجديد
موقعاً
بالفعل
بمفتاح
معترف به.
أُضيف في
الإصدار 245.
passwd USER
تغيير
كلمة مرور
الدليل
المنزلي أو
الحساب
المحدد.
أُضيف في
الإصدار 245.
resize USER BYTES
تغيير
المساحة
المخصصة
للدليل
المنزلي. في
LUKS2، يتم
تغيير حجم
ملف loopback ونظام
الملفات
تلقائياً.
يتطلب
تقليص ext4
إلغاء
التنشيط
أولاً،
بينما لا
يمكن تقليص xfs
أبداً. في btrfs
يمكن
التوسيع
والتقليص
أثناء
العمل. يمكن
استخدام
لواحق مثل G
أو M، أو
الكلمات "min"
و "max".
أُضيف في
الإصدار 245.
lock USER
تعليق
الوصول
للمنزل
مؤقتاً
ومسح
مفاتيح
التشفير من
الذاكرة
(خاص بـ LUKS2).
تتوقف أي
محاولة
وصول حتى
يُعاد فك
القفل
(المصادقة).
مفيد عند
تعليق
النظام (suspend)
لحماية
البيانات.
أُضيف في
الإصدار 245.
unlock USER
استئناف
الوصول
للمنزل
وإلغاء
تأثير
القفل (lock)؛
يتطلب ذلك
مصادقة
المستخدم
لاسترجاع
مفاتيح
التشفير.
أُضيف في
الإصدار 245.
lock-all
قفل جميع
الأدلة
المنزلية
المناسبة
دفعة
واحدة،
ويُنفذ
عادةً عند
تعليق
النظام
لضمان مسح
مفاتيح
التشفير من
الذاكرة.
أُضيف في
الإصدار 245.
deactivate-all
إلغاء
تنشيط جميع
الأدلة
النشطة
دفعة واحدة
عند إيقاف
تشغيل
النظام،
لضمان
إغلاقها
بشكل سليم
قبل فك وصل
أنظمة
الملفات.
أُضيف في
الإصدار 247.
with USER COMMAND...
تنشيط
منزل
مستخدم،
تشغيل أمر
محدد، ثم
إلغاء
التنشيط
ثانيةً.
مفيد
لعمليات
النسخ
الاحتياطي
التي تتطلب
فك قفل
المنزل
مؤقتاً.
أُضيف في
الإصدار 245.
rebalance
إعادة
موازنة
المساحة
الحرة بين
مناطق
المنزل
النشطة
والتخزين
الخلفي
(تزامنياً)
بناءً على
الأوزان
المحددة.
أُضيف في
الإصدار 250.
firstboot
يُستدعى
عند
التمهيد
الأول
للنظام
لإنشاء
مستخدم
أولي
تفاعلياً
أو عبر
بيانات
اعتماد
آلية تمرر
للجهاز.
يتم
استدعاء
هذا الأمر
بواسطة
وحدة
الخدمة
systemd-homed-firstboot.
أُضيف في
الإصدار 256.
list-signing-keys
عرض
قائمة
بالمفاتيح
العامة
المستخدمة
لتوقيع
الأدلة
المنزلية؛
يُنشأ
مفتاح local.public
تلقائياً
للتواقيع
المحلية.
أُضيف في
الإصدار 258.
get-signing-key [NAME...]
إخراج
المفتاح
العام
المحدد
بتنسيق PEM؛
الافتراضي
هو local.public.
أُضيف في
الإصدار 258.
add-signing-key [FILE...]
إضافة
مفاتيح
عامة من
ملفات PEM
للسماح
بدخول
المستخدمين
الحاملين
لتواقيعها
محلياً.
هذا الأمر
مفيد
للسماح
باستخدام
الأدلة
المحلية
على نظام
بعيد،
مثال:
homectl get-signing-key | ssh myotherhost homectl add-signing-key --key-name="$HOSTNAME".public
أُضيف في
الإصدار 258.
remove-signing-key NAME...
إزالة
المفتاح
العام
المحدد من
قائمة
المفاتيح
المعترف
بها
للتسجيل.
أُضيف في
الإصدار 258.
بيانات الاعتماد¶
يدعم homectl مع
أمر firstboot منطق
بيانات
اعتماد
الخدمة (credentials)؛
راجع systemd.exec(5)
للتفاصيل.
home.create.*
إذا تم
تمرير
بيانات
اعتماد
تبدأ بـ "home.create."
متبوعة
باسم
مستخدم
صالح،
فسيتم
إنشاء
منطقة منزل
جديدة لكل
منها.
أُضيف في
الإصدار 256.
سطر أوامر النواة¶
systemd.firstboot=
قيمة
منطقية
لتعطيل
تأثير أمر
homectl
firstboot، ويتم
تفسيرها
أساساً
بواسطة
systemd-firstboot(1).
أُضيف في
الإصدار 256.
حالة الخروج¶
عند
النجاح،
يُعاد
الرقم 0،
وإلا
فيُعاد رمز
فشل غير
صفري.
عند
استخدام
أمر مع with،
يتم نقل
حالة خروج
العملية
الفرعية؛
حيث يخرج homectl
بدون خطأ
فقط إذا نجح
استدعاء
الأمر
وانتهى
بنجاح.
البيئة¶
$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
آليًا
معرفة ما
إذا كان
ينبغي
تفعيل
"النمط
الآمن" وما
إذا كان
المستعرض
يدعمه.
يُفعل
"النمط
الآمن" إذا
كان معرف
المستخدم
الفعلي ليس
هو نفسه
مالك جلسة
الولوج،
انظر geteuid(2) و
sd_pid_get_owner_uid(3)، أو
عند
التشغيل
تحت sudo(8) أو
أدوات
مماثلة ($SUDO_UID
مضبوط [5]). في
تلك
الحالات،
سيُضبط
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 وشروط
أخرى.
أمثلة¶
مثال 1. إنشاء
مستخدم
باسم "waldo" في
مجموعة
الإدارة
"wheel"، وتخصيص
مساحة قرص
قدرها 500
ميجابايت
له.
homectl create waldo --real-name="Waldo McWaldo" -G wheel --disk-size=500M
مثال 2. إنشاء
مستخدم
باسم "wally" على
ذاكرة USB،
وتعيين حد
أقصى قدره 500
مهمة
متزامنة
له.
homectl create wally --real-name="Wally McWally" --image-path=/dev/disk/by-id/usb-SanDisk_Ultra_Fit_476fff954b2b5c44-0:0 --tasks-max=500
مثال 3. تغيير
مستوى
اللطافة (nice level)
للمستخدم
"odlaw" إلى +5
والتأكد من
ضبط متغير
البيئة $SOME
على
السلسلة
النصية "THING"
له عند
تسجيل
الدخول.
homectl update odlaw --nice=5 --setenv=SOME=THING
مثال 4. إعداد
الاستيثاق
باستخدام
رمز أمان YubiKey
باستخدام
PKCS#11/PIV:
# مسح مفاتيح Yubikey القديمة (احذر!)
ykman piv reset
# توليد زوج مفاتيح خاص/عام جديد على الجهاز، وتخزين المفتاح العام في 'pubkey.pem'.
ykman piv generate-key -a RSA2048 9d pubkey.pem
# إنشاء شهادة ذاتية التوقيع من هذا المفتاح العام، وتخزينها على الجهاز.
ykman piv generate-certificate --subject "Knobelei" 9d pubkey.pem
# لم نعد بحاجة إلى المفتاح العام على القرص
rm pubkey.pem
# السماح لرمز الأمان بفك قفل حساب المستخدم 'lafcadio'.
homectl update lafcadio --pkcs11-token-uri=auto
مثال 5. إعداد
الاستيثاق
باستخدام
رمز أمان FIDO2:
# السماح لرمز أمان FIDO2 بفك قفل حساب المستخدم 'nihilbaxter'.
homectl update nihilbaxter --fido2-device=auto
مثال 6. إضافة
مفتاح
استرداد
إلى حساب
مستخدم
موجود:
# توليد وإضافة مفتاح استرداد للمستخدم 'emily'.
homectl update emily --recovery-key=yes
ملاحظات¶
- 1.
- سجلات
مستخدم JSON
- 2.
- مواصفة
تسمية
الأيقونات
- 3.
- أدلة كتل
سجلات
المستخدمين
- 4.
- بناء جملة
اسم
المستخدم/المجموعة
- 5.
- يوصى
للأدوات
الأخرى
بضبط
والتحقق من
$SUDO_UID حسب
الاقتضاء،
ومعاملته
كواجهة
مشتركة.
ترجمة¶
تُرجمت
هذه الصفحة
من الدليل
بواسطة
هذه
الترجمة هي
وثيقة
مجانية؛
راجع
رخصة
جنو العامة
الإصدار 3
أو ما بعده
للاطلاع
على شروط
حقوق النشر.
لا توجد أي
ضمانات.
إذا وجدت
أي أخطاء في
ترجمة صفحة
الدليل
هذه، يرجى
إرسال بريد
إلكتروني
إلى قائمة
بريد
المترجمين:
kde-l10n-ar@kde.org.