أساسيات Linux والشبكات
أنظمة الملفات والصلاحيات
معرفة نظام الملفات تفرق بين المرشح المبتدئ والخبير. دعنا نغطي ما يتوقع المقابلون أن تعرفه.
مفاهيم نظام الملفات
الأينود
الأينود يخزن البيانات الوصفية عن الملف:
# عرض معلومات الأينود
ls -li /path/to/file
stat /path/to/file
# محتويات الأينود:
# - نوع الملف والصلاحيات
# - المالك (UID) والمجموعة (GID)
# - الحجم والطوابع الزمنية
# - مؤشرات إلى كتل البيانات
# - عدد الروابط
# ملاحظة: لا يحتوي على اسم الملف!
سؤال مقابلة: "القرص يُظهر مساحة متاحة لكن لا يمكنك إنشاء ملفات. ماذا حدث؟"
الجواب: نظام الملفات نفدت منه الأينودات. تحقق بـ
df -i. كل ملف/مجلد يستهلك أينود واحد. شائع مع العديد من الملفات الصغيرة. الحلول: احذف ملفات، أو أعد التنسيق بمزيد من الأينودات.
الروابط الصلبة مقابل الروابط الرمزية
| الميزة | الرابط الصلب | الرابط الرمزي |
|---|---|---|
| الأينود | نفس الأصل | أينود مختلف |
| عبر نظام الملفات | لا | نعم |
| حذف الهدف | يعمل | رابط معطل |
| المجلدات | لا (باستثناء . و ..) |
نعم |
# إنشاء رابط صلب
ln original hardlink
# إنشاء رابط رمزي
ln -s original symlink
# تحقق من عدد الروابط (العمود الثاني)
ls -l
أنظمة الملفات الشائعة
| نظام الملفات | حالة الاستخدام | الميزة الرئيسية |
|---|---|---|
| ext4 | Linux العام | Journaling، ناضج |
| XFS | ملفات كبيرة، افتراضي RHEL | قابل للتوسع، I/O متوازي |
| Btrfs | اللقطات، RAID | النسخ عند الكتابة |
| tmpfs | مدعوم بـ RAM | سريع، متطاير |
| NFS | مشاركات الشبكة | موزع |
| overlay | الحاويات | طبقات (Docker) |
صلاحيات Linux
الصلاحيات الأساسية (rwx)
# سلسلة الصلاحيات: -rwxr-xr-x
# النوع: - (ملف)، d (مجلد)، l (رابط)
# المالك: rwx (قراءة، كتابة، تنفيذ)
# المجموعة: r-x (قراءة، تنفيذ)
# الآخرون: r-x (قراءة، تنفيذ)
# رقمياً: 755
# r=4, w=2, x=1
# rwx = 4+2+1 = 7
# r-x = 4+0+1 = 5
الصلاحيات الخاصة
| الصلاحية | الرمز | الثماني | التأثير |
|---|---|---|---|
| SUID | s (x المستخدم) | 4000 | التنفيذ كمالك الملف |
| SGID | s (x المجموعة) | 2000 | التنفيذ كمجموعة / وراثة المجموعة |
| Sticky | t (x الآخرون) | 1000 | فقط المالك يمكنه الحذف |
# ضبط SUID (تشغيل كـ root)
chmod u+s /path/to/file
chmod 4755 /path/to/file
# ضبط sticky bit على /tmp (فقط المالك يمكنه الحذف)
chmod +t /tmp
chmod 1777 /tmp
سؤال مقابلة: "ما هو SUID ومتى يكون خطيراً؟"
الجواب: SUID يسمح للبرنامج بالعمل بصلاحيات المالك. خطير عند ضبطه على ملفات مملوكة لـ root—إذا استُغل، المهاجمون يحصلون على root. مثال كلاسيكي: ثغرة SUID تؤدي إلى تصعيد الامتيازات. ابحث عن ملفات SUID:
find / -perm -4000 2>/dev/null
أوامر إدارة القرص
الأوامر الأساسية
# استخدام القرص حسب المجلد
du -sh /var/*
# أكبر الملفات
find /var -type f -exec du -h {} + | sort -rh | head -20
# مساحة القرص
df -h
# إحصائيات I/O القرص
iostat -x 1
# تحقق من صحة القرص
smartctl -a /dev/sda
أساسيات LVM
إدارة الحجم المنطقي تسمح بإدارة مرنة للقرص:
الحجوم الفيزيائية (PV) → مجموعات الحجوم (VG) → الحجوم المنطقية (LV)
# توسيع حجم منطقي
lvextend -L +10G /dev/vg0/lv_root
resize2fs /dev/vg0/lv_root # لـ ext4
xfs_growfs /dev/vg0/lv_root # لـ XFS
سيناريوهات المقابلة
س: "مطور يقول أنه لا يستطيع الكتابة في /var/log/app. كيف تستكشف الأخطاء؟"
# تحقق من الصلاحيات
ls -la /var/log/app
# تحقق من الملكية
stat /var/log/app
# تحقق من مساحة القرص
df -h /var/log
# تحقق من الأينودات
df -i /var/log
# تحقق إذا كان نظام الملفات للقراءة فقط
mount | grep /var
# تحقق من SELinux (إذا كان مفعلاً)
ls -Z /var/log/app
getenforce
س: "القرص عند 100% لكن du -sh / يُظهر فقط 60% مستخدم. لماذا؟"
الأسباب المحتملة:
- ملفات محذوفة لا تزال مفتوحة:
lsof +L1يُظهر الملفات المحذوفة لكن لا تزال محجوزة - مساحة محجوزة: ext4 يحجز 5% لـ root افتراضياً
- نقاط تركيب مختلفة:
duقد لا يعبر حدود التركيب
# ابحث عن الملفات المحذوفة لا تزال مفتوحة
lsof +L1
# تحقق من المساحة المحجوزة
tune2fs -l /dev/sda1 | grep "Reserved block count"
التالي، سنغوص في الشبكات—TCP/IP وDNS ضروريات المقابلة. :::