





السمعة:
- إنضم10 مايو 2023
- المشاركات 372
- الحلول 5
- مستوى التفاعل 605
- النقاط 93
- العمر 26
بسم الله الرحمن الرحيم
وصف التحدّي:
كلمة السر للمرحلة التالية مُخزّنة بمكان ما ما داخل السيرفر ( النظام ) ، يتميز الملف بالمواصفات التالية: - مملوك للمستخدم bandit7 - مملوك للمجموعة bandit6 - حجمه 33 بايت |
حل التحدّي:
كالعادة نبدأ الحل بالإتصال على السيرفر الخاص بالتحديات من خلال بروتوكول SSH كما تعلَّمنا في التحديات السابقة باسم المستخدم bandit6.
وبما أنه أخبرنا ان الملف موجود بمكان ما داخل النظام ولدينا مواصفات الملف المطلوب مذكورة بوصف التحدي; لذلك سنستخدم أمر البحث find مجددًا، وكما وضحنا بالتحدي السابق عن شرح استخدام أمر البحث سنكتب الأمر ويليه مواصفات الملف المطلوب من حيث اسم المستخدم واسم المجموعة والحجم.
الصيغة العامة :
كود:
find path -user username -group group name -size number (c)
نستبدله بمواصفات الملف المُراد البحث عنه:
كود:
find / -user bandit7 -group bandit6 -size 33c
التوضيح :user : اسم المستخدم المالك للملف.
group : اسم المجموعة التي ينتمي لها المستخدم المالك للملف المُراد البحث عنه داخل النظام.
size : يتم تحديد حجم الملف أو المُجلد بعدها، وحرف الـ c يعني الحجم بالبايت.
/ : ( root directory ) وهو المُجلد الجذر أو المًجلد الأساسي داخل نظام لينكس; حيث يندرج داخله جميع ملفات ومُجلدات النظام; لأننا لا نعرف بالتحديد مكان الملف المطلوب داخل النظام لذلك سنبحث داخل جميع مُجلدات النظام وجميعها موجودة داخل مُجلد الـ روت ( / )، والصورة بالأسفل توضح هيكلية ملفات نظام لينكس، تأملها لتفهم الكلام السابق.
والآن بعد ان قمنا بالبحث من خلال أمر البحث حصلنا على المُخرجات التالية على سطر الأوامر:
لكن لا تقلق فلينكس يُقدم لنا دومًا مخرجًا وحلًا سريعًا

امممم....
حسنًا لو قمنا بالتدقيق بنتائج عملية البحث فهناك عدد لا بأس به من الملفات الظاهرة أمامنا عليها عبارة " premission denied " وقبل أن تتساءل عن معنى العبارة دعني أخبرك.... ببساطة هذه رسالة خطأ من قبل النظام " error message " وتعني أنه ليس لديك أية صلاحية كمستخدم باسم bandit6 لقراءة هذه الملفات، اذًا من هنا ندرك أن الملف المطلوب بالطبع لا يقع ضمنها لأنك كمستخدم باسم bandit6 بالطبع يجب أن تكون لديك الصلاحية لعرض وقراءة محتويات الملف المطلوب للحصول على كلمة سر المرحلة التالية .... ومن هنا سنبحث عن أمر يمكننا اضافته لسطر البحث السابق بحيث يقوم بأخذ جميع النتائج وفلترة أي نتيجة error قبل عرض النتائج... حيث سيعرض لنا فقط الملف المسموح قراءة محتواه وبالتأكيد سيكون هو الملف المطلوب! فهيا بنا لنبدأ باضافة خطوة البحث تلك.
اذًا لتسهيل عملية البحث سنقوم بعملية توجيه المخرجات الخاطئة او ما تُسمى بـ error redirecting من خلال ما يًعرف بـ stderr ويرمز له بالنظام بالرقم 2، حيث سنقوم بإضافة <2 يليه مكان التوجيه dev/null في نهاية أمر البحث الخاص بنا، لم ؟
التوضيح :
2 : يشير إلى stderr، أي رسائل الخطأ.
< : يعني إعادة توجيه المُخرجات او النتائج.
dev/null : هو مكان فارغ داخل النظام يشبه تقريبا سلة المُهملات داخل نظام تشغيل وييندوز لكن هذا الملف يتم تجاهل أي شيء مكتوب فيه، ويتم اتلاف جميع محتوياته في كل مرة; فهي فقط محتويات مؤقتة.
<2 يليه المكان المراد التوجيه له، مثلًا dev/null : يعني أن stderr (رسائل الخطأ) ( التي تحتوي على رسائل خطأ من
الأمر أو البرنامج الذي تم تنفيذه) يتم إعادة توجيهها جميعًأ "<" إلى ملف الـ /dev/null ليتم تجاهلها واتلافها.
ويمكنك أيضًا مشاهدة الفيديو التالي تحديدًا الدقيقة 5:45 للتعرف على عملية اعادة التوجيه والـ stderr.
إذًا أصبح الأمر النهائي هو :
كود:
find / -user bandit7 -group bandit6 -size 33c 2> /dev/null
وكما هو مُتوقع، حصلنا على الملف المطلوب بعد ادخال الأمر، الآن ما علينا سوا عرض محتويات الملف للحصول على كلمة مرور المرحلة التالية ...
وبهذا نكون قد انتهينا من حل هذا التحدي بفضل الله تعالى وتوفيقه، آمل أن يكون الشرح واضح.
وكما تلاحظ فالتحديات تزداد صعوبة مع التقدم بالمراحل، لذا كن فخورًا بنفسك مع تقدمك بالحل ووصولك لهذه المرحلة، ولا تنسى أن كل تحدِ هو فرصة للتعلم والتطور....
انتظروني بحل المراحل القادمة باذن الله
التعديل الأخير: