table of contents
- unstable 4.31.0-1
| SYSTEMD-CREDS(1) | systemd-creds | SYSTEMD-CREDS(1) |
الاسم¶
systemd-creds - يسرد ويعرض ويعمي ويفك تعمية بيانات اعتماد الخدمة
موجز¶
systemd-creds [خيارات...] أمر [وسائط...]
الوصف¶
systemd-creds أداة لسرد وعرض وتعمية وفك تعمية بيانات اعتماد الوحدات. بيانات الاعتماد هي كائنات ثنائية أو نصية محدودة الحجم يمكن تمريرها إلى عمليات الوحدة. تُستخدم بشكل أساسي لتمرير المفاتيح التعموية (عامة وخاصة) أو الشهادات أو معلومات حساب المستخدم أو معلومات الهوية من المضيف إلى الخدمات.
تُهيأ بيانات الاعتماد في ملفات الوحدة عبر الإعدادات ImportCredential= وLoadCredential= وSetCredential= وLoadCredentialEncrypted= وSetCredentialEncrypted=، انظر systemd.exec(5) للتفاصيل.
لمزيد من المعلومات انظر توثيق بيانات اعتماد النظام والخدمة[1].
الأوامر¶
الأوامر التالية مفهومة:
list
إلى جانب كل اسم بيانات اعتماد، يُعرض الحجم والحالة الأمنية. الأخيرة هي إحدى "آمن" (في حال كانت بيانات الاعتماد مدعومة بذاكرة غير قابلة للمبادلة، أي "ramfs")، أو "ضعيف" (في حال كانت مدعومة بأي نوع آخر من الذاكرة)، أو "غير آمن" (إذا كان لها أي وضع وصول غير 0400، أي إذا كانت قابلة للقراءة من قبل أي شخص غير المالك).
أُضيف في الإصدار 250.
cat بيانات_اعتماد...
عند دمجه مع --json= أو --transcode= يُعاد ترميز المخرج بطرق بسيطة قبل الإخراج.
أُضيف في الإصدار 250.
setup
أُضيف في الإصدار 250.
encrypt مدخل|- مخرج|-
يأخذ مسارين لنظام الملفات. يُضمن جزء اسم الملف من مسار المخرج كاسم في بيانات الاعتماد المعماة، لضمان عدم إمكانية إعادة تسمية بيانات الاعتماد المعماة وإعادة استخدامها لأغراض مختلفة دون ملاحظة ذلك. يمكن تجاوز اسم بيانات الاعتماد المراد تضمينه باستخدام إعداد --name=. يمكن تحديد مسارات المدخل أو المخرج كـ "-"، وفي هذه الحالة تُقرأ بيانات الاعتماد من/تُكتب إلى المدخل القياسي والمخرج القياسي. إذا حُدد مسار المخرج كـ "-" لا يمكن اشتقاق اسم بيانات الاعتماد من مسار نظام الملفات، وبالتالي يجب تحديده صراحةً عبر مفتاح --name=.
تُعمى بيانات الاعتماد وتُوثق بشكل متماثل باستخدام أحد مفاتيح التعمية التالية:
يمكن تهيئة أي من المفاتيح الثلاثة سيُستخدم للتعمية باستخدام مفتاح --with-key=. اعتمادًا على حالة استخدام بيانات الاعتماد المعماة قد يختلف المفتاح المستخدم. على سبيل المثال، لبيانات الاعتماد التي يجب أن تكون قابلة للوصول من initrd، التعمية بمفتاح المضيف غير مناسبة، لأن الوصول إلى مفتاح المضيف غير متوفر عادةً من initrd. وبالتالي، لمثل هذه البيانات يجب استخدام مفتاح TPM2 فقط.
تُرمى بيانات الاعتماد المعماة دائمًا في Base64.
استخدم decrypt (انظر أدناه) لعكس عملية التعمية، والحصول على بيانات الاعتماد النص العادي المفكوكة التعمية من بيانات الاعتماد النص المعمى المعماة.
تُعمى بيانات الاعتماد باستخدام AES256-GCM، أي توفير السرية والتكامل معًا، بمفتاح من تجزئة SHA256 لواحد أو كلا المفتاحين السريين الموصوفين أعلاه.
أُضيف في الإصدار 250.
decrypt مدخل|- [مخرج|-]
يأخذ مسارًا أو مسارين لنظام الملفات. يُقارن جزء اسم الملف من مسار المدخل مع اسم بيانات الاعتماد المضمن في الملف المعمى. إذا لم يتطابق، يفشل فك التعمية. يُفعل ذلك لضمان عدم إعادة استخدام بيانات الاعتماد المعماة دون اكتشاف ذلك. يمكن أيضًا تجاوز اسم بيانات الاعتماد المراد مقارنته مع اسم بيانات الاعتماد المضمن باستخدام مفتاح --name=. إذا حُدد مسار المدخل كـ "-"، تُقرأ بيانات الاعتماد المعماة من المدخل القياسي. إذا حُدد مسار واحد فقط أو حُدد مسار المخرج كـ "-"، تُكتب بيانات الاعتماد المفكوكة التعمية إلى المخرج القياسي. في هذا الوضع، لا يمكن اشتقاق الاسم المتوقع المضمن في بيانات الاعتماد من المسار ويجب تحديده صراحةً باستخدام --name=.
فك تعمية بيانات الاعتماد يتطلب الوصول إلى شريحة TPM2 الأصلية و/أو مفتاح مضيف بيانات الاعتماد، انظر أعلاه. المعلومات حول المفاتيح المطلوبة مضمنة في بيانات الاعتماد المعماة، وبالتالي فك التعمية آلي بالكامل.
أُضيف في الإصدار 250.
--no-ask-password
-h، --help
--version
الخيارات¶
--system
أُضيف في الإصدار 250.
--user
داخليًا، يضمن هذا إدراج UID الرقمي واسم المستخدم المحددين، بالإضافة إلى machine-id(5) للنظام، في مفتاح التعمية.
أُضيف في الإصدار 256.
--uid=
أُضيف في الإصدار 256.
--transcode=
لاحظ أن هذا لا يؤثر على الأمر encrypt، حيث تُرمّز الاعتمادات المُعمّاة بشكل غير مشروط في Base64.
أُضيف في الإصدار 250.
--newline=
أُضيف في الإصدار 250.
--pretty, -p
أُضيف في الإصدار 250.
--name=اسم
عند تحديده مع الأمر decrypt، يتحكم في اسم الاعتماد للتحقق من اسم الاعتماد المُضمّن في الاعتماد المُعمّى. إذا لم يُحدد، يُختار الاسم آليًا من مكون اسم الملف لمسار الإدخال المحدد. إذا لم يُضمّن اسم اعتماد في ملف الاعتماد المُعمّى (أي اُستخدم --name= بسلسلة فارغة عند التعمية)، فإن الاسم المحدد لا تأثير له حيث لا يُجرى التحقق من اسم الاعتماد.
يُجرى تضمين اسم الاعتماد في الاعتماد المُعمّى للحماية من إعادة استخدام الاعتمادات لأغراض لم تكن مخصصة لها أصلاً، بافتراض اختيار اسم الاعتماد بعناية لترميز غرضه المقصود.
أُضيف في الإصدار 250.
--timestamp=طابع_زمني
عند تحديده مع الأمر decrypt، يتحكم في الطابع الزمني المستخدم للتحقق من الطابع الزمني "not-after" المكون باستخدام --not-after= أثناء التعمية. إذا لم يُحدد، المبدئي هو وقت النظام الحالي.
أُضيف في الإصدار 250.
--not-after=طابع_زمني
أُضيف في الإصدار 250.
--with-key=, -H, -T
المفتاح -H هو اختصار لـ --with-key=host. وبالمثل، -T هو اختصار لـ --with-key=tpm2.
عند تعمية اعتمادات ستُستخدم في initrd (حيث /var/lib/systemd/ غير متاح عادةً)، تأكد من استخدام وضع --with-key=auto-initrd لتعطيل الربط بسر المضيف.
هذا المفتاح لا تأثير له على الأمر decrypt، حيث أن معلومات المفتاح المستخدم لفك التعمية مضمنة بالفعل في الاعتماد المُعمّى.
أُضيف في الإصدار 250.
--tpm2-device=مسار
أُضيف في الإصدار 250.
--tpm2-pcrs=PCR[+PCR...]
أُضيف في الإصدار 250.
--tpm2-public-key=المسار، --tpm2-public-key-pcrs=PCR[+PCR...]
لاحظ الفرق بين B و --tpm-public-key-pcrs=: الأول يربط فك التعمية بقيم PCR الحالية والمحددة؛ بينما الثاني يربط فك التعمية بأي مجموعة من قيم PCR التي يمكن تقديم توقيع لها بواسطة المفتاح العام المحدد. وبالتالي فإن الأخير أكثر فائدة في السيناريوهات التي يجب أن تكون فيها تحديثات البرامج ممكنة دون فقدان الوصول إلى جميع الأسرار المعماة سابقًا.
أُضيف في الإصدار 252.
--tpm2-signature=مسار
أُضيف في الإصدار 252.
--allow-null
أُضيف في الإصدار 256.
--refuse-null
أُضيف في الإصدار 259.
--quiet، -q
أُضيف في الإصدار 251.
--no-pager
--no-legend
--json=وضع
حالة الخروج¶
عند النجاح، يُعاد 0.
أمثلة¶
مثال 1. تعمية كلمة سر لاستخدامها كبيانات اعتماد
يقوم سطر الأوامر التالي بتعمية كلمة السر المحددة "hunter2"، ويكتب النتيجة إلى ملف password.cred.
# echo -n hunter2 | systemd-creds encrypt - password.cred
يقوم هذا بفك تعمية ملف password.cred مرة أخرى، كاشفًا كلمة السر الحرفية:
# systemd-creds decrypt password.cred hunter2
مثال 2. تعمية كلمة سر وتضمينها في ملف وحدة
يطالب سطر الأوامر التالي المستخدم بإدخال كلمة سر وينشئ سطر SetCredentialEncrypted= منها لبيانات اعتماد باسم "mysql-password"، مناسبة للإدراج في ملف وحدة.
# systemd-ask-password -n | systemd-creds encrypt --name=mysql-password -p - - 🔐 Password: **** SetCredentialEncrypted=mysql-password: \
k6iUCUh0RJCQyvL8k8q1UyAAAAABAAAADAAAABAAAAASfFsBoPLIm/dlDoGAAAAAAAAAA \
NAAAAAgAAAAAH4AILIOZ3w6rTzYsBy9G7liaCAd4i+Kpvs8mAgArzwuKxd0ABDjgSeO5k \
mKQc58zM94ZffyRmuNeX1lVHE+9e2YD87KfRFNoDLS7F3YmCb347gCiSk2an9egZ7Y0Xs \
700Kr6heqQswQEemNEc62k9RJnEl2q7SbcEYguegnPQUATgAIAAsAAAASACA/B90W7E+6 \
yAR9NgiIJvxr9bpElztwzB5lUJAxtMBHIgAQACCaSV9DradOZz4EvO/LSaRyRSq2Hj0ym \
gVJk/dVzE8Uxj8H3RbsT7rIBH02CIgm/Gv1ukSXO3DMHmVQkDG0wEciyageTfrVEer8z5 \
9cUQfM5ynSaV2UjeUWEHuz4fwDsXGLB9eELXLztzUU9nsAyLvs3ZRR+eEK/A==
يمكن لصق السطر المُنشأ 1:1 في ملف وحدة، وسيضمن توفر كلمة السر المكتسبة في ملف بيانات الاعتماد $CREDENTIALS_DIRECTORY/mysql-password للخدمة المُشغلة.
باستخدام منطق الإسقاط في ملف الوحدة، يمكن استخدام هذا لتمرير بيانات اعتماد كلمة سر بشكل آمن إلى وحدة. مجموعة أوامر مماثلة وأكثر شمولاً لإدراج كلمة سر في خدمة xyz.service:
# mkdir -p /etc/systemd/system/xyz.service.d # systemd-ask-password -n | ( echo "[Service]" && systemd-creds encrypt --name=mysql-password -p - - ) >/etc/systemd/system/xyz.service.d/50-password.conf # systemctl daemon-reload # systemctl restart xyz.service
انظر أيضًا¶
ملاحظات¶
- 1.
- بيانات اعتماد النظام والخدمة
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| systemd 261~rc3 |