حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي
حمّل برنامج FlightGear مجاناً من الموقع الرسمي. قارن بين حزم Windows و macOS و Linux، وثبّت ملفات البيانات، وابدأ رحلتك الأولى.
أفضل طريقة لتقييد وصول مستخدمي SSH إلى دليل محدد على نظام Ubuntu 24.04 هي استخدام OpenSSH ChrootDirectoryمع خيار SFTP ForceCommand internal-sftp. يُعد هذا الخيار مثاليًا عندما يحتاج الحساب فقط إلى نقل الملفات. فهو يمنح المستخدم واجهة SFTP يكون جذر نظام ملفاتها هو الدليل الذي تختاره، مع حظر الوصول إلى واجهة سطر الأوامر التفاعلية وإعادة توجيه SSH.
إذا كان المستخدم بحاجة فعلية إلى واجهة أوامر عادية، فالقرار يختلف. تتطلب واجهة الأوامر التفاعلية المعزولة (chroot) ملفات تنفيذية خاصة بها، ومكتبات، وعُقد أجهزة، وملفات داعمة داخل البيئة المعزولة. يوثق OpenSSH هذا الأمر بوضوح. بالنسبة لمعظم حسابات التحميل والنسخ الاحتياطي والوكالات والموردين والاستضافة المشتركة، تُعد بيئة chroot التي تعتمد على بروتوكول SFTP فقط أبسط بكثير وأقل عرضة للأخطاء. أما بالنسبة للمستخدمين غير الموثوق بهم الذين يحتاجون إلى بيئة أوامر كاملة، فعادةً ما يكون استخدام حاوية أو جهاز افتراضي مخصص أسهل في الصيانة من إنشاء بيئة chroot لواجهة الأوامر يدويًا.
يستخدم هذا الدليل نظام Ubuntu 24.04 LTS ومستخدمًا افتراضيًا باسم alice. سيقتصر استخدام هذا المستخدم على /srv/sftp/aliceوسيُسمح له بالكتابة داخل فقط /files. استبدل الأسماء والمسارات بما يناسب خادمك.
أكثر أسباب فشل chroot شيوعًا هو مشكلة الأذونات. يتطلب OpenSSH أن يكون كل مكون من مكونات ChrootDirectoryالمسار مملوكًا للمستخدم الجذر (root) وغير قابل للكتابة من قِبل المجموعة أو المستخدمين الآخرين . يتم التحقق من هذا الشرط بشكل دائم. هذا يعني أنه لا يجب عليك جعل /srv/sftp/aliceالمسار قابلاً للكتابة من قِبل أي مستخدم آخر alice.
بدلاً من ذلك، اجعل مجلد السجن مملوكًا للمستخدم الجذر، وأنشئ مجلدًا فرعيًا قابلاً للكتابة:
/srv/sftp/alice root:root 755
└── files alice:alice 755
يتبع هذا التصميم السلوك الموثق في دليل أوبونتو 24.04sshd_config(5) . ويشير الدليل نفسه إلى أنه internal-sftpلا يحتاج إلى ملفات تشغيل إضافية داخل بيئة chroot، ولذلك فهو الأنسب لحساب نقل ملفات مقيد.

ssh.serviceقبل تغيير قواعد الوصول.قم بتثبيت حزمة الخادم إذا لزم الأمر:
sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh.service
تستخدم وثائق OpenSSH الرسمية لنظام Ubuntu openssh-serverحزمة البرامج الخفية (daemon package) ssh.serviceوإدارة الخدمات. راجع دليل OpenSSH الخاص بخادم Ubuntu .
إذا كان هذا جهازًا بعيدًا وكان SSH هو طريقتك الإدارية الوحيدة، فاحرص على إبقاء جلسة المسؤول الحالية مفتوحة أثناء إجراء التغييرات. قد يؤدي سوء تكوين SSH إلى حظر وصولك.

أنشئ مجموعة للمستخدمين ذوي الصلاحيات المحدودة. إذا aliceكانت المجموعة موجودة بالفعل، فأضفها إليها فقط.
sudo groupadd sftpusers
sudo adduser alice
sudo usermod -aG sftpusers alice
id alice
إذا كنت تستخدم بالفعل مفاتيح SSH العامة، فاستمر في استخدامها. يتحكم إعداد chroot في ما يحدث بعد المصادقة ؛ ولا يتطلب منك التبديل من مصادقة المفاتيح إلى كلمات المرور.
عادةً ما تكون القاعدة الجماعية أفضل من إنشاء Match Userكتلة منفصلة لكل حساب، لأنها تُبقي السياسة في مكان واحد. ومع ذلك، تظل القاعدة الخاصة بكل مستخدم مفيدة عندما يكون من الضروري تقييد المستخدمين المختلفين بتصميمات غير مترابطة.

filesالدليل الفرعي قابل للكتابة بواسطة المستخدم المقيد.إنشاء التسلسل الهرمي للمجلدات:
sudo mkdir -p /srv/sftp/alice/files
sudo chown root:root /srv/sftp/alice
sudo chmod 755 /srv/sftp/alice
sudo chown alice:alice /srv/sftp/alice/files
sudo chmod 755 /srv/sftp/alice/files
تحقق من الملكية:
ls -ld /srv /srv/sftp /srv/sftp/alice /srv/sftp/alice/files
namei -l /srv/sftp/alice
إذا /srvكان /srv/sftpالملف قابلاً للكتابة من قِبل المجموعة أو المستخدم، فقم بإصلاح ذلك أيضًا. يتحقق OpenSSH من جميع مكونات المسار، وليس فقط الدليل النهائي.

Match Groupسياسة chroot و SFTP فقط على أعضاء sftpusers.توصي وثائق خادم أوبونتو الحالية بالاحتفاظ بإعدادات SSH المخصصة /etc/ssh/sshd_config.d/بدلاً من دمجها في الملف الرئيسي المُضمّن. أنشئ مقتطفًا برمجيًا:
sudo nano /etc/ssh/sshd_config.d/90-sftp-restricted.conf
يضيف:
Match Group sftpusers
ChrootDirectory /srv/sftp/%u
ForceCommand internal-sftp -d /files
DisableForwarding yes
PermitTTY no
Match all
%uيتوسع إلى اسم المستخدم المُصادق عليه، لذا aliceيتم وضعه في /srv/sftp/alice. -d /filesتُخبر الوسيطة خادم SFTP الداخلي بالبدء داخل الدليل الفرعي القابل للكتابة. DisableForwarding yesيُعطّل توجيه X11، والوكيل، وTCP، وStreamLocal في توجيه واحد؛ وقد تم توثيقه خصيصًا لتبسيط التكوينات المقيدة.
الجزء الأخير Match allمهم في المقتطف لأنه ينهي السياق الشرطي قبل تحليل التكوين اللاحق.

بالنسبة للمستخدمين المتعددين الذين يستخدمون نفس التخطيط، احتفظ بقاعدة المجموعة الموضحة أعلاه. أما بالنسبة لحساب استثنائي واحد، فاستخدم كتلة خاصة بالمستخدم بدلاً من ذلك.
Match User vendor1
ChrootDirectory /srv/vendor/vendor1
ForceCommand internal-sftp -d /incoming
DisableForwarding yes
PermitTTY no
Match all
اختر بناءً على تكلفة الإدارة:
| سيناريو | أفضل قاعدة | لماذا |
|---|---|---|
| العديد من المستخدمين الذين يقتصر عملهم على التحميل فقط لديهم نفس البنية | Match Group | تُطبق سياسة واحدة على جميع الأعضاء. |
| يحتاج أحد البائعين إلى دليل فريد | Match User | يمكن أن يختلف المسار والقيود دون أن يؤثر ذلك على الآخرين. |
| يحتاج المستخدم إلى واجهة تفاعلية عادية | لا تستخدم هذه الوصفة التي تعمل عبر بروتوكول SFTP فقط | يحتاج نظام chroot التفاعلي إلى بيئة تشغيل كاملة. |
| يحتاج المستخدم غير الموثوق به إلى أوامر وعزل قوي | ضع في اعتبارك حاوية أو جهازًا افتراضيًا | يسهل تحديد وتحديث بيئة تنفيذ كاملة. |

لا تقم بإعادة تشغيل SSH مباشرةً بعد تعديل الملف. قم أولاً بتشغيل اختبار بناء الجملة الذي توصي به أوبونتو:
sudo sshd -t
عدم وجود مخرجات يعني نجاح عملية التحقق من بناء الجملة. يمكنك أيضًا الاطلاع على الإعدادات الفعلية لمستخدم معين:
sudo sshd -T -C user=alice,host=localhost,addr=127.0.0.1 | grep -E 'chrootdirectory|forcecommand|disableforwarding|permittty'
يجب أن ترى مسار chroot المتوقع وأمر SFTP الإجباري. يُعد هذا مفيدًا بشكل خاص على أوبونتو لأن الإعدادات قد تأتي من كلا /etc/ssh/sshd_configالملفين الموجودين ضمن /etc/ssh/sshd_config.d/. يُشير أوبونتو إلى أن OpenSSH يستخدم عادةً القيمة الأولى التي يتم الحصول عليها لمعظم التوجيهات، لذا فإن التحقق من التكوين الفعلي أكثر أمانًا من افتراض أي ملف هو المُعتمد.

قم بتطبيق التغيير:
sudo systemctl restart ssh.service
sudo systemctl status ssh.service
ثم قم بالاتصال من طرفية أخرى:
sftp alice@server.example.com
داخل بروتوكول نقل الملفات الآمن (SFTP)، اختبر:
pwd
ls
put test.txt
ls -l
مع الإعدادات المذكورة أعلاه، يجب أن يكون دليل SFTP الأولي هو /files. الشرطة المائلة التي يعرضها SFTP هي جذر chroot، وليس جذر الخادم الحقيقي.
لا ينبغي أن تؤدي محاولة الوصول إلى الصدفة العادية إلى الحصول على صدفة غير مقيدة:
ssh alice@server.example.com
لأن ForceCommand internal-sftpهذا الحساب يستبدل الجلسة المطلوبة بخادم SFTP الموجود في العملية، فهو مخصص لنقل الملفات بدلاً من تنفيذ الأوامر.

/etcمرئية /rootخارج بيئة chroot.حاول الانتقال إلى ما فوق الجذر الظاهر وفحص مسارات المضيف الحساسة:
cd ..
ls /
ls /etc
ls /root
داخل بيئة chroot، /يُمثل هذا /srv/sftp/aliceالمجلد على المضيف. إذا لم تقم بإنشاء أي مجلد etcأو دليل داخل هذه البيئة المعزولة، فلن يتمكن المستخدم من الوصول إلى المجلد الحقيقي أو المجلد rootعلى المضيف ./etc/root
اختبر أيضًا عملية تحميل إلى /files. إن التكوين الذي يمنع الهروب ولكنه يجعل السجن بأكمله للقراءة فقط عن طريق الخطأ آمن ولكنه غير مفيد لحساب التحميل.
إذا فشل تسجيل الدخول فوراً، فافحص سجل خدمة SSH:
sudo journalctl -fu ssh.service
يوصي دليل OpenSSH الخاص بنظام Ubuntu باستخدام سجل خدمة SSH لتحديد المشاكل وإصلاحها. إذا واجهت خطأً في الملكية أو الوضع، فافحص كل مجلد رئيسي.
namei -l /srv/sftp/alice
يجب أن يكون مسار chroot مملوكًا للمستخدم الجذر (root) وغير قابل للكتابة من قِبل المجموعة أو أي مستخدم آخر. ومن الأخطاء الشائعة ما يلي:
sudo chown alice:alice /srv/sftp/alice
لا تحل المشكلة بتخفيف فحوصات OpenSSH. بدلاً من ذلك، ضع مساحة الكتابة الخاصة بالمستخدم أسفل جذر chroot:
sudo chown root:root /srv/sftp/alice
sudo chmod 755 /srv/sftp/alice
sudo chown alice:alice /srv/sftp/alice/files
ChrootDirectoryيمكن استخدامه أيضًا مع واجهة سطر أوامر تفاعلية، لكن الإعداد أكثر تعقيدًا بكثير. ينص OpenSSH على أن بيئة chroot التفاعلية تحتاج على الأقل إلى واجهة سطر /devأوامر وعُقد أساسية، بالإضافة إلى أي ملفات تنفيذية ومكتبات وملفات تحليل أسماء النطاقات وغيرها من التبعيات التي تتطلبها الأوامر التي تسمح بها.
بالنسبة لحساب جهاز مُحكم التحكم، يُمكن تبرير إنشاء بيئة معزولة كهذه. أما بالنسبة للوصول العام إلى أوامر لينكس، فغالبًا ما يُشكّل ذلك عبئًا على الصيانة: إذ يجب أن تنعكس تحديثات الأمان للأدوات والمكتبات داخل البيئة المعزولة أيضًا. إذا كان المطلوب هو "السماح لهذا الشخص بتشغيل الأوامر مع عزله عن النظام المضيف"، فعادةً ما يكون استخدام حاوية أو جهاز افتراضي أو خدمة مُخصصة ذات صلاحيات محدودة أسهل في التدقيق.
يُعد تقييد الوصول إلى الدليل طبقة واحدة فقط. بالنسبة للخوادم المتصلة بالإنترنت، يُرجى مراعاة ما يلي أيضًا:
sudoإمكانية الوصول.DisableForwarding yesبهذا الحساب لحسابات SFTP فقط حتى لا يتم إعادة استخدام اتصال SSH للأنفاق أو إعادة توجيه الوكلاء.journalctl -u ssh.serviceملكية الملفات بعد إضافة المستخدمين.للحصول على السلوك النهائي لـ ChrootDirectory، Match، ForceCommand، و DisableForwarding، استخدم دليل تكوين خادم OpenSSH الخاص بنظام Ubuntu 24.04 . أما بالنسبة لتخطيط التكوين الخاص بنظام Ubuntu، والتحقق من صحته، وأوامر إعادة التشغيل، والتسجيل، فراجع وثائق خادم OpenSSH الرسمية لنظام Ubuntu .
إذا كان الهدف هو السماح لحساب SSH هذا بتحميل وتنزيل الملفات داخل مجلد واحد فقط، فاستخدم مجلدًا مملوكًا للمستخدم الجذر ChrootDirectory، وضع المحتوى القابل للكتابة في مجلد فرعي مملوك للمستخدم، ثم قم بفرض ذلك internal-sftp. تحقق من صحة العملية sshd -tقبل إعادة التشغيل، ثم اختبر مسار التحميل المسموح به ومحاولات الوصول من خارج البيئة المعزولة. يوفر لك هذا حدودًا أمنية صغيرة ومفهومة دون الحاجة إلى إنشاء بيئة لينكس كاملة داخل البيئة المعزولة.
حمّل برنامج FlightGear مجاناً من الموقع الرسمي. قارن بين حزم Windows و macOS و Linux، وثبّت ملفات البيانات، وابدأ رحلتك الأولى.
يقوم برنامج OKSampler بربط مقاطع MP3 بمفاتيح لوحة المفاتيح، كما يتيح تكرار الصوت. تعرّف على وظائف هذا البرنامج المجاني القديم، وحدود ميزاته القديمة، وما يجب التحقق منه قبل التنزيل.
افتح مهام جوجل في متصفح، وأضف اختصارًا لمتصفح كروم أو قم بتشغيلها على غرار التطبيقات، وقم بإدارة المهام المؤرخة من خلال التقويم وجيميل.
قم بتثبيت نسخة لينكس من لعبة Don't Starve Together عبر Steam، وابدأ عالمًا جديدًا، أو انضم إلى أصدقائك باتباع خطوات الإعداد واستكشاف الأخطاء وإصلاحها هذه.
قم بإعداد Squad على نظام Linux باستخدام Steam Play و Proton، ثم قم بتثبيت اللعبة، واختر أداة التوافق، وقم باستكشاف مشكلات مكافحة الغش وإصلاحها.
قم بتنزيل ملف LMDE 5 ISO المؤرشف والتحقق منه، ثم أنشئ قرص USB قابلًا للإقلاع، واختر إعدادات التثبيت الآمنة. انتهى دعم Elsie؛ راجع إصدار LMDE الحالي.
قم بإنشاء قرص USB لتثبيت نظام التشغيل Windows 11 على نظام Linux باستخدام Ventoy: احصل على ملف ISO الرسمي، وقم بتثبيت Ventoy بأمان، وانسخ الصورة، وقم بتشغيل جهاز الكمبيوتر المستهدف.
تعلم كيفية تشغيل لعبة It Takes Two على نظام Linux باستخدام Steam Proton، وتثبيت إصدار Steam، وتمكين التوافق، وإعداد وضع اللعب التعاوني، وحل مشاكل التشغيل.
قم بتثبيت Wireshark على Ubuntu أو Debian أو Fedora أو Arch أو openSUSE باستخدام أوامر الحزمة الحالية، ثم قم بتكوين التقاط الحزم المباشر بأمان.
قم بتثبيت Steam على نظام Linux، ثم احصل على نسخة Slay the Spire الأصلية لنظام Linux من مكتبتك، وقم بتشغيلها. يتضمن ذلك خطوات عملية لحل مشاكل بدء التشغيل الشائعة.