البرمجة

حل مشكلة sudo: no tty present

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

“sudo: no tty present and no askpass program specified”

تعليقات المستخدم Lurdan في هذا المقال تشير إلى أنه يتعين عليك تشغيل:

sudo -S
chmod 0666 /dev/tty

لقد وجدت أن sudo -S يعمل ولكن chmod لا يعمل، لكن بالتأكيد هناك إصلاح آخر؟

تأكدت من أن الرابط الذي قمت بمتابعته هو المقال الذي تم تقديمه، وهو مقال على موقع OMG! Ubuntu! يتناول كيفية ترقية Bash على نظام التشغيل Windows 10 ليصبح Ubuntu 16.04 LTS. يعمل هذا الدليل على إعداد وتشغيل Windows Subsystem for Linux (WSL)، الذي يتيح للمستخدمين تشغيل تطبيقات Linux مباشرة على نظام Windows دون الحاجة إلى تثبيت نظام تشغيل Linux بشكل منفصل.

الخطأ “sudo: no tty present and no askpass program specified” يحدث عندما تحاول استخدام sudo في سياق لا يوجد فيه TTY (نافذة أو محطة لإدخال الأوامر النصية). يمكن حل هذا الخطأ بتمكين tty للمستخدم الذي يقوم بتشغيل الأمر. ولكن الحل الذي تم ذكره في التعليقات، الذي يتضمن تغيير إعدادات الأذونات لـ /dev/tty، قد لا يكون الحل الأمثل بالنسبة لك.

بدلاً من ذلك، يمكنك محاولة حل المشكلة عن طريق إعادة توجيه الإدخال القياسي (stdin) بواسطة sudo. يمكنك القيام بذلك عن طريق تشغيل sudo مع الخيار -S وتمرير الأمر المطلوب مباشرة إلى stdin. على سبيل المثال:

echo “password” | sudo -S

ومن ثم، يجب استبدال “password” بكلمة المرور الخاصة بالمستخدم الذي لديه صلاحيات sudo.

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

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

باختصار، يمكنك حل مشكلة “sudo: no tty present and no askpass program specified” عن طريق إعادة توجيه stdin إلى sudo مباشرة، ولكن يجب الحرص على الأمان عند استخدام هذا الحل أو استكشاف حلول أمان أخرى مثل تكوين sudoers بشكل مناسب.

المزيد من المعلومات

بالإضافة إلى الحلول المذكورة أعلاه، هناك بعض النصائح الإضافية التي يمكن أن تساعد في حل مشكلة “sudo: no tty present and no askpass program specified” وتجنب حدوثها مستقبلاً:

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

  2. فحص الإعدادات الخاصة بـ sudo: يجب التحقق من ملف الإعدادات الخاص بـ sudo (/etc/sudoers) للتأكد من عدم وجود أي إعدادات غير صحيحة أو متضاربة. يمكنك استخدام أمر visudo لتحرير هذا الملف بطريقة آمنة.

  3. التحقق من الأمان: يجب مراجعة الإعدادات الأمنية الخاصة بالنظام والتأكد من أنها لا تسمح بإجراءات مشبوهة أو غير مراقبة. يمكن أن تؤدي بعض التكوينات الأمنية الصارمة إلى حدوث مشكلات مثل هذه.

  4. البحث عن حلول أخرى: يمكنك البحث عبر الإنترنت أو الرجوع إلى مجتمعات المطورين والمنتديات للحصول على مساعدة إضافية. قد يكون هناك حلول أخرى تمت تجربتها من قبل مستخدمين آخرين وتثبت نجاحها.

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

باستخدام هذه النصائح، يجب أن تكون قادرًا على حل مشكلة “sudo: no tty present and no askpass program specified” بشكل فعال وتجنب حدوثها مستقبلاً. إذا استمرت المشكلة، يمكنك التحقق من سجلات الأخطاء والتقارير الخاصة بالنظام لمزيد من التحليل والتشخيص.

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

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر