كيفية إصلاح خطأ “sudo: command not found” على لينكس

sudo-command-not-found-error-feature

أحيانًا، أثناء أداء مهام إدارية مثل إعداد نظام لينكس جديد على آلة افتراضية أو تعديل ملفات النظام، قد تواجه رسالة الخطأ “sudo: command not found”. هذا خطأ شائع ومربك للمستخدمين الجدد على لينكس.

في هذه المقالة، سنوضح معنى هذا الخطأ وكيفية إصلاحه على لينكس باستخدام طرق مختلفة.

ملاحظة: تم استخدام Ubuntu 24.04 LTS كمثال، ولكن الحلول المقدمة تنطبق على توزيعات لينكس الأخرى أيضًا.

ما هو أمر sudo؟

لنبدأ بفهم ما هو أمر sudo. أمر sudo، اختصار لـ “superuser do”، يتيح لك أداء المهام التي تتطلب صلاحيات خاصة للمستخدم الجذر (أو الروت).

في لينكس، الحسابات العادية لها صلاحيات محدودة لتجنب تلف النظام بالخطأ. لا يمكنك الوصول إلى ملفات معينة أو أداء مهام حاسمة. من ناحية أخرى، المستخدم الجذر ليس لديه حدود ويمكنه فعل أي شيء على النظام.

باستخدام sudo قبل الأمر، تقوم برفع صلاحياتك مؤقتًا. هذا يتيح لك تنفيذ الأوامر التي ستكون مقيدة بخلاف ذلك. على سبيل المثال، إذا كنت بحاجة إلى تثبيت برنامج أو تعديل ملفات النظام، يمنحك sudo الأذونات اللازمة.

استخدام sudo هو خيار أفضل من تسجيل الدخول كمستخدم جذر لأنه يقلل من خطر كسر النظام بالخطأ. عندما تشغل أمرًا بـ sudo، يطلب منك كلمة مرور المستخدم الخاصة بك (وليس كلمة مرور الجذر) للتحقق من هويتك. هذا يوفر طبقة إضافية من الأمان، حيث يمكن للمستخدمين المصرح لهم فقط تنفيذ العمليات الحساسة.

بالإضافة إلى ذلك، هناك أيضًا طريقة لاستخدام sudo بدون كلمة مرور.

ما معنى “Sudo: Command Not Found”؟

رسالة الخطأ “sudo: command not found” تعني أن نظام لينكس الخاص بك ليس لديه حزمة sudo متاحة. معظم أنظمة لينكس تأتي مع sudo مثبت مسبقًا، ولكن البعض منها لا، مثل Arch و Gentoo Linux.

ومع ذلك، أحيانًا قد ترى هذا الخطأ حتى لو كان sudo مثبتًا على نظامك. في هذه الحالة، قد يكون السبب هو أن متغير PATH الخاص بك لا يحتوي على الدليل الذي تم تثبيت sudo فيه. متغير PATH يساعد النظام في العثور على الأوامر من خلال البحث في الأدلة المدرجة.

أخيرًا، قد ترى هذا الخطأ إذا كان لدى المستخدم الخاص بك صلاحيات غير صحيحة أو إذا لم يتم إعداد PATH بشكل صحيح. تأكد أيضًا من أنك كتبت sudo بشكل صحيح.

نصيحة: يمكنك أيضًا تجربة Run0، وهو برنامج تصعيد صلاحيات جديد يعد بديلاً ممتازًا لـ sudo، وتعلم كيفية استخدام Run0 على لينكس.

كيفية إصلاح خطأ “Sudo: Command Not Found”

لإصلاح خطأ “sudo: command not found” على لينكس، تحتاج إلى تثبيت sudo، إضافة المستخدم إلى مجموعة sudo، أو إضافة مسار تنفيذ sudo إلى متغير PATH.

تثبيت sudo

أولاً، دعنا نتأكد إذا كان نظامك يحتوي على حزمة sudo متاحة أم لا. يمكنك التحقق بسهولة عن طريق استعلام رقم الإصدار. إذا ظهر، فأنت تعرف أن sudo مثبت على نظامك:

sudo --version

إذا كان نظام لينكس الخاص بك لا يحتوي على sudo مثبتًا، فستحتاج إلى تثبيته لحل الخطأ. للقيام بذلك، تحتاج إلى تسجيل الخروج من حساب المستخدم الخاص بك وتسجيل الدخول كمستخدم جذر.

للقيام بذلك، اكتب هذا الأمر:

su -

الآن، بعد أن أصبحت مستخدمًا جذرًا، يمكنك تثبيت حزمة sudo على توزيعة لينكس الخاصة بك باستخدام مدير الحزم الافتراضي الخاص بك.

على سبيل المثال، يمكنك تثبيت sudo على توزيعات Ubuntu/Debian باستخدام apt:

apt install sudo

لتثبيت sudo على توزيعات CentOS/Fedora أو RHEL، استخدم هذا الأمر:

dnf install sudo

استخدم الأمر التالي لتثبيت حزمة sudo على Arch Linux:

pacman -S sudo

إضافة المستخدم إلى مجموعة sudo

بعد تثبيت sudo، أضف مستخدمك غير الجذر إلى مجموعة sudo لتمكين الوصول إلى صلاحيات الجذر. على سبيل المثال، يمكنك إضافة مستخدم إلى مجموعة sudo على نظام Ubuntu أو Debian باستخدام هذا الأمر:

usermod -aG sudo username

على Fedora/CentOS أو توزيعات RHEL الأخرى، حاول إضافة المستخدم إلى مجموعة wheel:

usermod -aG wheel username

علاوة على ذلك، يمكنك التحقق مما إذا تم إضافة المستخدم إلى المجموعة أم لا عن طريق تنفيذ الأمر أدناه:

groups username

بعد التحقق، عد إلى المستخدم غير الجذر من الجذر باستخدام أمر su متبوعًا باسم المستخدم الخاص بك:

su username

هذا كل شيء! الآن، يمكنك تنفيذ جميع الأوامر كمستخدم جذر باستخدام sudo. على سبيل المثال، يمكنك التحقق من تثبيت sudo عن طريق تحديث حزم نظام لينكس الخاص بك باستخدام هذا الأمر:

sudo apt update

إضافة مسار sudo إلى متغير PATH

إذا كان لديك sudo مثبتًا على نظامك ولكنك لا زلت تحصل على خطأ “sudo: command not found”، تحقق من متغير PATH الخاص بك وتأكد من أنه يتضمن الدليل الذي تم تثبيت sudo فيه.

أولاً، حدد موقع أمر sudo عن طريق إرجاع مسار تنفيذه:

which sudo

بعد ذلك، استخدم الأمر echo للتحقق مما إذا كان متغير PATH الخاص بك يتضمن هذا الدليل (/usr/bin/):

echo $PATH

هنا، سترى قائمة بالعديد من الأدلة مفصولة بنقطتين. تحتاج إلى البحث عن “/usr/bin” أو “/bin” في القائمة لأنهما من أكثر المواقع شيوعًا لـ sudo.

إذا لم يكن لديك دليل “/usr/bin” في PATH، يمكنك إضافته باستخدام هذا الأمر:

export PATH=$PATH:/usr/bin

استبدل “/usr/bin” بالدليل الفعلي الذي يحتوي على ملف sudo التنفيذي.

تشغيل هذا الأمر يقوم بتحديث متغير PATH مؤقتًا، مما يسمح لنظامك بالعثور على دليل sudo وحل أخطاء bash على لينكس. ومع ذلك، سيكون هذا التعديل مؤقتًا وسينتهي عندما تنتهي من جلسة الطرفية.

لجعل هذا التغيير دائمًا لجميع المستخدمين، تحتاج إلى إضافة دليل sudo إلى متغير PATH على مستوى النظام. للقيام بذلك، دعنا نصبح مستخدم الجذر أولاً:

su -

افتح ملف “/etc/profile”:

nano /etc/profile

ابحث عن سطر متغير المسار وأضف دليل “/usr/bin” إلى متغير PATH.

أخيرًا، احفظ الملف بالضغط على Ctrl + O وأغلق المحرر. الآن، يمكنك العمل مع أمر sudo بدون أي أخطاء.

خاتمة

لقد نجحت في إصلاح خطأ “sudo: command not found” من خلال تثبيت sudo، إضافة المستخدم الخاص بك إلى مجموعة sudo، وإضافة مسار sudo إلى متغير PATH.

علاوة على ذلك، يمكنك أيضًا استكشاف الاختلافات بين sudo -s، su، sudo su، وsudo -i.