الأمن السيبراني

أساسيات Linux 2026 — أوامر، خدمات، تصحيح

4 min de lecture

أجّرت للتو VPS، أعطوك مفتاح SSH، وها أنت أمام prompt أسود لا يُظهر شيئًا سوى اسمك يليه #. كل الباقي — نشر API، استعادة قاعدة بيانات، فهم لماذا الخادم يبطؤ في الساعة 22 — يمرّ بهذه الشاشة. يُعطيك هذا الدليل القاعدة العملية لتتوقّف عن نسخ-لصق الأوامر عشوائيًا وتبدأ التفكير كمسؤول نظام. يُغطّي سطر الأوامر، الصلاحيات، العمليات، خدمات systemd، الشبكة، SSH، قراءة logs بـ journalctl، ومنهجية تصحيح لا تترك شيئًا للصدفة.

لماذا يبقى Linux مركزيًا في 2026

حصيلة الاستخدام لا تترك مجالًا للشك. استطلاعات سنوية من Linux Foundation واستطلاع المطوّرين Stack Overflow 2024 تضع Linux كنظام أغلبية في الإنتاج، بهيمنة ساحقة على جانب الخوادم cloud وحاويات. كل صور Docker الرسمية الأساسية تعمل على نواة Linux، Kubernetes ينسّق عقد Linux، وحتى Windows Server يكشف الآن WSL ليُتيح أدوات GNU التعايش مع Hyper-V. لمطوّر يريد إتقان كدسته، تجنّب Linux يعني تفويض كل قرار OS بشكل أعمى لـ PaaS.

واقع 2026 يُضيف ضغطين جديدين. من جهة، تعميم معماريات ARM في cloud — Ampere في Oracle، Graviton في AWS، Axion في Google — يُلزم بفهم portabilité الـ binaires ودور الحزم متعددة المعمار. من جهة أخرى، ضغط الأمان لا يتراجع: بين قواعد audit CIS، الالتزامات القطاعية، والحاجة لتقوية وصول SSH أمام scanners آلية، معرفة قراءة journal النظام أصبحت كفاءة شبه يومية.

يستهدف هذا الدليل جمهورًا ملموسًا: مطوّرون juniors يريدون تجاوز نسخ-لصق، طلبة BTS/Licence ينبغي عليهم تسليم مشروع منشور، freelancers يأجرون VPS لاستضافة موقع WordPress أو API Node، ومسؤولون مبتدئون يرثون خادمًا دون توثيق.

اختيار توزيعة دون ندم

سوق الخادم 2026 يتركّز حول بضع عائلات. Ubuntu 26.04 LTS « Resolute Raccoon »، الصادرة 23 أبريل 2026، مدعومة حتى أبريل 2031، تبقى الخيار الافتراضي عند غالبية المُضيفين الاقتصاديين لأن منظومة حزم .deb ضخمة. Debian 13 « Trixie » المنشورة صيف 2025 تستهدف نفس الجمهور بدورة أكثر تحفّظًا، أكثر استقرارًا لكن بحزم أقدم أحيانًا. على جانب Red Hat، AlmaLinux 9 وRocky Linux 9 حلّتا محل CentOS 7 (نهاية حياة في 30 يونيو 2024)؛ هما إلزاميتان إذا كان تطبيقك يطلب توافق RHEL صارمًا.

لخادم أول، Ubuntu 24.04 LTS يبقى خيارًا آمنًا — لا يزال مدعومًا حتى أبريل 2029 — وUbuntu 26.04 LTS يأخذ الراية للنشرات الجديدة. تجنّب الإصدارات non-LTS على خادم إنتاج: لا تتلقّى سوى 9 أشهر من تحديثات الأمان.

عائلة التوزيعة تُحدّد ثلاثة أشياء: مدير الحزم (apt على Debian/Ubuntu، dnf على Alma/Rocky)، موقع بعض ملفات التهيئة، وأحيانًا الإصدار الافتراضي للمكوّنات المركزية مثل firewall (ufw Ubuntu، firewalld Alma). كل الباقي — shell Bash، نواة Linux، أوامر ls وgrep، شجرة الجذر — متطابق صارمًا.

تشريح جلسة shell

عند الاتصال بـ SSH، Bash يبدأ ويعرض prompt، عادةً بصيغة user@host:~$. $ يُشير لمستخدم عادي؛ # يُشير لـ root. هذا التمييز ليس تجميليًا — كل أمر مكتوب خلف # يُنفَّذ بصلاحيات كاملة وقد يُدمّر النظام بحرف مكتوب خطأً.

أمر Linux يتبع مخططًا مستقرًا: اسم برنامج، خيارات قصيرة تبدأ بـ -، خيارات طويلة تبدأ بـ --، ومعاملات. مثلًا ls -lh --time=mtime /var/log يستدعي ls، يطلب العرض الطويل والقابل للقراءة، يُرتّب حسب تاريخ التعديل، ويسرد /var/log. ثلاثة انعكاسات تُساوي وزنها ذهبًا: إنهاء كل أمر مجهول بـ --help لسرد الخيارات، فتح man nom_commande لصفحة manual، واستخدام tldr nom_commande لأمثلة ملموسة.

الـ shell ليس مجرد launcher. يُسلسل الأوامر عبر pipe | الذي يأخذ مخرج programme ليُعطيه كإدخال للتالي. الأمر ps -ef | grep nginx | grep -v grep | wc -l يحسب عدد عمليات Nginx النشطة بالضبط. هذا التركيب هو الفكرة المركزية لـ Unix كما صاغها Doug McIlroy في السبعينيات: « اكتب برامج تفعل شيئًا واحدًا وتفعله جيدًا ».

للتجاوز، احفظ ثلاثة عناصر. إعادة التوجيه > (يكتب فوق ملف) و>> (يُضيف للنهاية) تلتقط المخرج؛ 2>&1 يخلط stderr وstdout. إكمال tab يُكمّل أسماء الأوامر والخيارات والملفات. تاريخ Ctrl-R يفتح بحثًا تزايديًا في الأوامر السابقة.

الشجرة والصلاحيات

Linux ليس له أحرف drive. كل شيء ينطلق من / وينزل في شجرة وحيدة. الأماكن القانونية مُوحَّدة بـ Filesystem Hierarchy Standard (FHS 3.0 من 2015). للحفظ: /etc ملفات التهيئة، /var/log journaux التطبيقية، /home/user البيانات الشخصية، /usr/bin الـ binaires المُثبَّتة من حزم، /opt برامج طرف ثالث مُودَعة يدويًا، /tmp ملفات مؤقتة تُمحى عند كل إعادة تشغيل.

نموذج صلاحيات Unix يعتمد على ثلاثي مالك / مجموعة / آخرون مع ثلاثي read / write / execute. مخرج ls -l fichier.txt يبدأ بعشرة أحرف: نوع ملف ثم 9 bits. مثلًا -rw-r--r-- يعني ملف عادي، قراءة-كتابة للمالك، قراءة فقط للمجموعة وللآخرين. الأمر chmod يُعدّل هذه bits، إما بصياغة symbolique (chmod g+w fichier)، أو octale (chmod 644 fichier). الأمر chown يُغيّر المالك، وsudo يرفع الصلاحيات مؤقتًا.

ثلاثة فخاخ تضرب المبتدئين. الأول: bit setuid على binary (chmod u+s) يجعله يُنفَّذ بصلاحيات المالك، لا المستدعي — script setuid root باب مفتوح إذا مكتوب سيئًا. الثاني: sudo rm -rf / دمّر فعلًا خوادم في الإنتاج. الثالث: Access Control Lists (ACL POSIX) تمنح صلاحيات إضافية غير مرئية في ls -l؛ getfacl هو الذي يكشف الحقيقة.

العمليات، الإشارات، الموارد

كل ما يُنفَّذ على خادم هو عملية. النواة تُعطي كل واحدة معرّفًا (PID) وهرمية: كل عملية لها أب، وPID 1 — تاريخيًا init، الآن systemd على غالبية التوزيعات الحديثة — هو السلف لكل الباقي. الأمر ps -ef يضع القائمة الكاملة، ps auxf يُضيف استهلاك CPU/RAM ويعرض في شكل شجرة. لمتابعة زمن حقيقي، top يبقى المرجع؛ htop يُضيف ألوانًا واختصارات؛ btop يُضيف رسومات ASCII.

عملية تعيش، تنام، تستيقظ، ويمكن مقاطعتها عبر الإشارات. kill -SIGTERM PID يطلب الإنهاء بأدب؛ البرنامج يستقبل الإشارة ولديه إمكانية إغلاق ملفاته. kill -SIGKILL PID (مكافئ kill -9) لا يطلب شيئًا — النواة تقطع. القاعدة الذهبية: ابدأ بـ SIGTERM، انتظر بضع ثوانٍ، اصعد لـ SIGKILL فقط إذا رفضت العملية الموت. SIGHUP يخدم تاريخيًا لطلب من démon إعادة قراءة تهيئته دون إعادة التشغيل.

عندما يبطؤ خادم، رصد الموارد يمرّ بـ uptime (متوسط الحمل على 1، 5، 15 دقيقة)، free -h (ذاكرة)، df -h (أقراص)، وخاصة vmstat 1 أو iostat -xz 1 اللذان يُحدِّثان كل ثانية. Brendan Gregg، طويل المسؤولية عن الأداء في Netflix والآن Intel fellow، روّج منذ 2012 لـ USE method (Utilization, Saturation, Errors).

الخدمات بـ systemd

على كل نظام Linux حديث — Ubuntu، Debian، Alma، Rocky، Fedora، openSUSE، Arch — systemd هو الذي يُدير البدء والإيقاف والإشراف على الخدمات. وُلد في 2010 في Red Hat تحت قيادة Lennart Poettering. الإصدار 260، المنشور في مارس 2026، يحذف دعم scripts SysV التاريخية.

الوحدة الأساسية تُسمى unit. الأنواع الأكثر شيوعًا: services (.service)، timers (.timer) التي تحل محل cron، sockets (.socket) التي تُفعّل خدمة عند أول اتصال، mounts، targets. الأمر المحوري systemctlsystemctl status nginx يعرض الحالة، systemctl restart nginx يُعيد التشغيل، systemctl enable nginx يُفعّل عند البدء. خدمة مخصصة تُعلَن في /etc/systemd/system/mon-app.service بصياغة INI.

ثلاثة directives تستحق الحفظ مبكّرًا. Restart=on-failure يُعيد تشغيل démon يتعطّل تلقائيًا. User= وGroup= يعزلان الخدمة تحت حساب غير مُمتاز. ExecStartPre= يُتيح تنفيذ تحقق قبل البدء.

طبقات الشبكة اليومية

تشخيص الشبكة من أكثر الكفاءات ربحية لمسؤول. عندما يُرجع موقع خطأ 502، السبب نادرًا الكود التطبيقي: غالبًا خدمة سقطت، منفذ أُغلق من firewall، DNS مكسور، أو شهادة TLS منتهية. المنهجية: النزول طبقة بطبقة حتى إيجاد الانقطاع.

على الطبقة المحلية، ip addr يسرد الواجهات وعناوينها؛ ip route يُظهر جدول التوجيه؛ ss -tlnp يسرد المنافذ TCP في الاستماع مع البرنامج المرتبط (الأمر القديم netstat مُهجَّر منذ Debian 8 والاستبدال الرسمي هو ss من حزمة iproute2). على جانب firewall، ufw status verbose على Ubuntu وfirewall-cmd --list-all على Alma يُعطيان الحالة الفعلية للقواعد.

على الطبقة البعيدة، ping يختبر اتصال ICMP، traceroute أو mtr يرفعان سلسلة routers، dig +short example.com يستعلم DNS بدون زخرفة، curl -v https://exemple.com يلتقط تبادل HTTP الكامل. للحالات المؤلمة، tcpdump -i eth0 port 443 يلتقط الحركة الخام.

SSH: باب الدخول

SSH هو بروتوكول الاتصال عن بعد الافتراضي على Linux. الإصدار الجاري هو OpenSSH 10.3، المنشور في 2 أبريل 2026. العميل يُختزَل إلى ssh user@adresse؛ الخادم يستمع عادةً على المنفذ 22، مُعلَن في /etc/ssh/sshd_config. ثلاث آليات تُصادق المستخدم: كلمة مرور (تُمنع في الإنتاج)، مفتاح عام (مُوصى به)، شهادة SSH (مُستخدمة في بيئة شركة).

الممارسة المرجعية: توليد زوج مفاتيح Ed25519 — ssh-keygen -t ed25519 -C "votre@email" — ثم دفع المفتاح العام للخادم عبر ssh-copy-id. بمجرد وضع المفتاح، نُعطّل المصادقة بكلمة مرور في sshd_config بوضع PasswordAuthentication no وPubkeyAuthentication yes، ثم نُعيد تحميل الخدمة بـ systemctl reload ssh (Debian/Ubuntu) أو systemctl reload sshd (Alma/Rocky).

ثلاث وظائف تستحق المعرفة. config العميل في ~/.ssh/config يُتيح تعريف aliases (Host prod, HostName 1.2.3.4, User deploy). tunnel ssh -L 5432:localhost:5432 prod يُعيد توجيه منفذ محلي لقاعدة PostgreSQL بعيدة غير مكشوفة. ssh-agent يحفظ phrase كلمة المرور لمفتاح خلال الجلسة.

قراءة logs بـ journalctl

قبل systemd، logs كانت ملفات نص مُبَعثَرة في /var/log. اليوم journal النظام ثنائي، مُفهرس، مُهيكَل، ويُستعلَم بـ journalctl. الأمر journalctl -u nginx -n 50 --no-pager يعرض آخر 50 سطر لخدمة Nginx؛ journalctl -u nginx -f يُتابع مباشرة؛ journalctl --since "2026-05-04 14:00" --until "2026-05-04 15:00" يُرشّح بفترة زمنية؛ journalctl -p err -b يُظهر فقط الأخطاء منذ آخر بدء.

القوة الكبرى لـ journalctl هي البنية. كل إدخال يحمل حقولًا قابلة للفلترة: journalctl _SYSTEMD_UNIT=nginx.service _PID=1234 يعزل journal لـ PID محدد. مخرج JSON (--output=json) يُرسَل بسهولة لنظام تجميع مثل Loki أو Elasticsearch.

على خادم سليم، الـ journal يجب أن يبقى قابلًا للقراءة. إذا journalctl -p warning -b | head -50 يُرجع مئات الأسطر، فخدمة سيئة الإعداد تُلوّث؛ صحّح السبب، لا تُخفِ العَرَض. حجم journal مُقَيَّد بـ SystemMaxUse= في /etc/systemd/journald.conf.

منهجية التصحيح

المسؤول الجيد لا يُخمّن. يُلاحظ، يفترض، يختبر، يستنتج. المنهجية في 5 خطوات. أولًا، عزل المحيط: المشكلة تمسّ خدمة، آلة، شبكة، مستخدم؟ سؤال بسيط مثل « هل يعمل من مكان آخر؟ » يُلغي نصف المسارات الزائفة. ثانيًا، اقرأ journaux: journalctl -u service -n 100 --no-pager قبل أي إجراء آخر — 9 مرات من 10 السبب مكتوب بوضوح.

ثالثًا، تحقّق من الموارد: df -h للقرص، free -h للذاكرة، top لـ CPU. قرص بـ 100% يُجَمِّد Postgres، MariaDB، Nginx. تشبّع الذاكرة يُطلق OOM killer للنواة الذي يقتل أكثر العمليات شراهة دون إنذار — الأثر في journalctl -k | grep -i "out of memory". رابعًا، اختبر الطبقة التي تحت مباشرةً: إذا Nginx لم يعد يخدم، هل المنفذ مفتوح؟ ss -tlnp | grep :443. هل démon حي؟ systemctl status nginx. هل الإعداد يُحلَّل؟ nginx -t.

خامسًا، وثّق على التدفق في ملف incidents/2026-05-04-nginx-502.md مع timestamp، فرضيات، أوامر مُطلَقة، نتائج. هذا الانضباط يتجنّب الدوران ويُشكّل، على المدى المتوسط، أفضل رأس مال تشغيلي.

دروس السلسلة

  • سطر الأوامر Linux — shell، إعادة توجيه، pipes، تاريخ، إكمال
  • صلاحيات Linux: chmod، chown، sudo، ACL — نموذج Unix، octal، sticky bit، setuid، POSIX ACL
  • عمليات Linux: ps، top، htop، kill، signaux — رصد، إنهاء، OOM killer، USE method
  • systemd: إنشاء وإشراف خدمة — unit files، Restart، sandboxing، drop-ins
  • SSH: مفاتيح وtunnels وhardening — Ed25519، sshd_config، tunneling، agent
  • journalctl: قراءة واستثمار logs — فلاتر، JSON، retention، journald
  • شبكة Linux: ip، ss، dig، curl، tcpdump — تشخيص طبقة بطبقة، firewall، DNS
  • تصحيح Linux منهجي — منهجية 5 خطوات، حالات حقيقية

أخطاء شائعة

الخطأ السبب الحل
« command not found » binary غير مُثبَّت أو خارج PATH which cmd، apt install paquet، تحقّق من echo $PATH
« Permission denied » bits صارمة جدًا أو ملف يعود لـ root ls -l، chmod/chown مناسب
« No space left on device » قرص أو inodes مُشبَعة df -h، df -i، فرّغ /var/log إذا journald غير مُقَيَّد
« Connection refused » على منفذ خدمة مُطفأة أو firewall يحجب systemctl status، ss -tlnp، ufw status
SSH بطيء في الاتصال Reverse DNS يفشل على جانب الخادم UseDNS no في sshd_config
خدمة تتعطّل في حلقة إعداد غير صالح أو تبعية مفقودة journalctl -u service -n 100
« sudo: a password is required » حساب خارج مجموعة sudo usermod -aG sudo user ثم جلسة جديدة
ساعة الخادم خاطئة NTP غير مُزامَن timedatectl status، فعّل systemd-timesyncd أو chronyd

الأسئلة الشائعة

Bash أم Zsh في 2026؟
تعلّم Bash — هو الـ shell الافتراضي لغالبية الخوادم وكل مراجع المرجع تفترضه. Zsh مريح في محطة عمل لكن لا يُضيف شيئًا أساسيًا على خادم.

أي توزيعة لأول VPS؟
Ubuntu 24.04 LTS أو 26.04 LTS لمبتدئ: التوثيق ضخم، منظومة الحزم هائلة، مدة الدعم طويلة. Debian 13 إذا تُفضّل قاعدة أكثر استقرارًا.

هل نستخدم sudo دائمًا؟
لا. خصّص sudo للعمليات التي تُعدّل النظام. العمل الجاري يُجرى بحساب عادي. جلسة sudo -i دائمة تكشف لأخطاء كارثية.

كيف نُبقي خادمًا مُحدَّثًا دون كسر الإنتاج؟
فعّل تحديثات الأمان التلقائية (unattended-upgrades على Debian/Ubuntu، dnf-automatic على Alma/Rocky) بإذن لتصحيحات الأمان فقط، لا للترقيات الرئيسية.

كيف نتدرّب دون كسر خادم الإنتاج؟
أطلق آلة افتراضية محلية (Multipass، libvirt، VirtualBox) أو VPS مخصص بـ 3-5 يورو شهريًا (Hetzner، Scaleway، OVH) تُعامله كقابل للرمي.

أي كتب نقرأ؟
The Linux Command Line لـ William Shotts (مجاني PDF). How Linux Works لـ Brian Ward. Systems Performance لـ Brendan Gregg.

هل الأوامر هنا تعمل في WSL؟
نعم للغالبية — WSL 2 يُنفّذ نواة Linux حقيقية. بعض الأدوات منخفضة المستوى التي تلمس العتاد لها سلوك مُتدهور تحت WSL.

سلسلة دروس البرنامج

مقالات ذات صلة

Sponsoriser ce contenu

Cet emplacement est à vous

Position premium en fin d'article — c'est l'instant où les lecteurs sont le plus engagés. Réservez cet espace pour votre marque, votre formation ou votre offre.

Recevoir nos tarifs
Publicité