الملفات والـ Users والصلاحيات

جارٍ التحميل…

01 / ملخص الدرس

الملفات والـ Users والصلاحيات

الملفات والـ folders والـ path، والـ users، والفرق بين user عادي و admin و root، وصلاحيات read و write و execute.

02 / شرح الدرس مكتوبًا

نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.

أهلاً بيك. النهاردة هنتكلم عن حاجة هتقابلها في كل خطوة في الأمن… الملفات والصلاحيات.

كل حاجة على الجهاز محفوظة في ملفات. والملفات مِتْرَتِّبة جُوّه folders، زي الأدراج في الدولاب. والعنوان اللي بيوصلك لملف معيّن اسمه path.

في Linux، الـ path بيبدأ بـ slash، وبعدين أسماء الـ folders ورا بعض. وفي Windows بيبدأ بحرف الـ drive، زي C، وبعدين backslash. وفيه ملفات مهمة قوي للمهاجم، زي ملف الـ users في Linux… etc slash passwd. طيب مين يقدر يفتح الملفات دي؟ هنا ييجي دور الـ users. كل واحد بيستخدم الجهاز ليه user، وكل user ليه صلاحيات. زي الموَزَّفين في شركة: مش كل واحد يقدر يفتح كل الأوض.

وفيه نوعين مهمين من الـ users. user عادي، صلاحياته محدودة. و user صلاحياته كاملة: اسمه Administrator في Windows، و root في Linux. وهدف المهاجم في الآخر غالباً إنه يوصل للـ user ده.

والصلاحيات على الملف تلات أنواع أساسية: read، يعني تقرا الملف. write، يعني تعدّل فيه. و execute، يعني تشغّله كبرنامج. وغلطة صغيرة في الصلاحيات دي ممكن تفتح باب كبير للمهاجم. مِسال: لو ملف بيتشغّل بصلاحيات root، وأي user عادي يقدر يعدّل فيه… يبقى أي حد يقدر يكتب جُوّاه أوامر، والأوامر دي هتتنَفِّد بصلاحيات root. وده من أشهر الطرق اللي هنشوفها في كورسات Privilege Escalation. تعالى نعمل نِزام صلاحيات صغير بـ Python. dictionary فيها كل user، وقدامه الحاجات المسموح له يعملها. نشغّل… أحمد مسموح له يقرا بس.

main.py
permissions = {
    "ahmed": ["read"],
    "admin": ["read", "write", "delete"],
}

print(permissions["ahmed"])

المخرجات

['read']

ونعمل function اسمها can، بتسأل: الـ user ده مسموح له يعمل الحاجة دي ولا لأ؟ نشغّل… أحمد مش مسموح له يمسح، والـ admin مسموح.

main.py
permissions = {
    "ahmed": ["read"],
    "admin": ["read", "write", "delete"],
}

def can(user, action):
    return action in permissions.get(user, [])

print(can("ahmed", "delete"))
print(can("admin", "delete"))

المخرجات

False
True

دورك: ضيف user جديد اسمه sara، مسموح لها read و write، واسأل: تقدر تعمل write؟

تمرين

ضيف "sara": ["read", "write"] واطبع can("sara", "write").

الحل: سطر في الـ dictionary، وسطر print. نشغّل…

main.py
permissions = {
    "ahmed": ["read"],
    "sara": ["read", "write"],
    "admin": ["read", "write", "delete"],
}

def can(user, action):
    return action in permissions.get(user, [])

print(can("ahmed", "delete"))
print(can("admin", "delete"))
print(can("sara", "write"))

المخرجات

False
True
True

الدرس الجاي: الكمبيوتر بيشوف كل الحاجات دي إزاي؟ أرقام… صفر وواحد. يلا بينا.

03 / دروس المسار (23)
  1. 01أهلاً بيك — يعني إيه أمن سيبراني؟
  2. 02الكمبيوتر بيشتغل إزاي من جُوّه؟
  3. 03نظام التشغيل: المدير اللي بيدير كل حاجة
  4. 04الملفات والـ Users والصلاحياتانت هنا
  5. 05صفر وواحد: Binary و Hex و Encoding
  6. 06الشبكات والـ IP Address
  7. 07الـ Ports والـ Protocols
  8. 08الـ DNS والـ HTTP: إزاي الموقع بيفتح؟
  9. 09تطبيق الويب: Client و Server و Database
  10. 10مفاهيم الحماية: CIA Triad
  11. 11Vulnerability و Threat و Risk
  12. 12Authentication و Authorization
  13. 13Least Privilege و Defense in Depth
  14. 14الـ Hashing: إزاي نحفَظ الباسورد صح
  15. 15الـ Encryption: Symmetric و Asymmetric و HTTPS
  16. 16تفكير المهاجم: الثقة والمدخلات
  17. 17الـ Attack Surface والـ Attack Vectors
  18. 18الـ Social Engineering والـ Phishing
  19. 19أنواع المهاجمين، والأخلاق، والقانون
  20. 20أنواع الاختبار والـ Scope والـ Rules of Engagement
  21. 21مراحل اختبار الاختراق
  22. 22جهّز الـ Lab بتاعك
  23. 23مراجعة نهائية: سيناريو كامل، وإنت رايح فين