سؤال كيفية تعديل ملف "/ etc / sudoers" غير صحيح؟


كيف يمكنني تحرير ملف sudoers غير صحيح؟ إنه يلقي تحت الخطأ ولا يسمح لي بالتحرير مرة أخرى لإصلاحه.

هذا ما يحدث:

$ sudo visudo

>>> /etc/sudoers: syntax error near line 28 <<<
sudo: parse error in /etc/sudoers near line 28
sudo: no valid sudoers sources found, quitting

206
2017-10-30 19:15


الأصل


سؤال كبير في ضوء هذه الصفحة يخلق هذا الخطأ help.ubuntu.com/community/RootSudoTimeout


الأجوبة:


على نظام Ubuntu الحديث (والعديد من توزيعات GNU / Linux الأخرى) ، إصلاح تلف sudoers الملف سهل للغاية ، ولا يتطلب إعادة التشغيل ، أو استخدام قرص مضغوط مباشر ، أو الوصول الفعلي إلى الجهاز.

للقيام بذلك عبر SSH ، قم بتسجيل الدخول إلى الجهاز وتشغيل الأمر pkexec visudo. إذا كان لديك وصول فعلي إلى الجهاز ، فإن SSH غير ضروري ؛ فقط افتح نافذة طرفية وقم بتشغيل ذلك pkexec أمر.

بافتراض أنك (أو أي مستخدم آخر) مخول بتشغيل البرامج كـ root باستخدام PolicyKit ، يمكنك إدخال كلمة المرور الخاصة بك ، ثم يتم تشغيلها visudo مثل rootويمكنك اصلاح الخاص بك /etc/sudoers.

إذا كنت بحاجة إلى تعديل أحد ملفات التكوين في /etc/sudoers.d (التي في غير مألوف في هذه الحالة ، ولكن ممكن) ، استخدم pkexec visudo -f /etc/sudoers.d/اسم الملف.

إذا كان لديك موقف ذو صلة حيث يتعين عليك تنفيذ أوامر إدارة نظام إضافية كجذر لإصلاح المشكلة (أيضًا غير شائع في هذا الظرف ، ولكن شائعًا في حالات أخرى) ، فيمكنك بدء shell جذر تفاعلي مع pkexec bash. بصفة عامة ، أي أمر غير بياني يمكنك تشغيله sudo يمكن تشغيل مع pkexec في حين أن.

(إذا كان هناك أكثر من حساب مستخدم واحد على النظام المصرح بتشغيل البرامج كـ root مع PolicyKit ، ومن ثم لأي من هذه الإجراءات ، سيُطلب منك تحديد أي منها تريد استخدامه ، قبل طلب كلمة المرور الخاصة بك.)


إذا لم يفلح ذلك - على سبيل المثال ، إذا لم يكن هناك مستخدمون مصرح لهم بتشغيل البرامج كجذر عن طريق PolicyKit - فقم بالتمهيد من قرص مضغوط مباشر من Ubuntu (مثل القرص المضغوط الذي استخدمته على الأرجح لتثبيت Ubuntu) وقم بتركيب نظام الملفات تثبيت النظام. يمكنك القيام بذلك عن طريق الجري sudo parted -l لعرض الأقسام الخاصة بك - ربما يكون هناك قسم ext4 واحد فقط ، وهذا هو نظام ملفات الجذر.

لنفترض أن نظام ملفات root لنظام Ubuntu مثبت على / dev / sda1. ثم يمكنك تركيبها sudo mount /dev/sda1 /mnt. ثم يمكنك تحرير الملف sudoers النظام المثبت مع sudo nano -w /mnt/etc/sudoers. أو ، بشكل أفضل ، يمكنك تعديلها

sudo visudo -f /mnt/etc/sudoers

(الذي سيمنعك من حفظ ملف sudoers مع بناء جملة غير صحيح).


318
2017-10-30 19:45



عملت pkexec / usr / sbin / visudo على ديبيان 7 - marinara
لا يمكن أيضا أنها مجرد التمهيد في وضع الاسترداد؟ - Seth♦
بقرة مقدسة! شكرا جزيلا! أنقذ بيكون تمت إضافة ملف كما هو مقترح في etc / sudoers.d / directory باستخدام محرر نص منتظم (D-O-N-T__D-O__T-H-A-T !!!). فقدت كل القدرة على القيام بامتيازات مرتفعة ، بما في ذلك ، وتحرير الملف المخالف. هذا ساعد في تحرير الملف. غريب على الرغم من ذلك ، كان علي تحرير / etc / sudoers أولاً ، ثم وجد الأخطاء في الملف الآخر وفتح ذلك بالنسبة لي. تم التعليق على الأمر التوجيهي في / etc / sudoers file "inlcudedir /etc/sudoers.d" ، ولا يزال يتضمنه. - Dennis
تضمين التغريدة #include التوجيهات في sudoers يتم التعامل مع الملفات خصيصا ؛ الرائد # لا يتسبب في تفسير بقية السطر كتعليق ، في هذه الحالة. مثل man sudoers يقول: "يتم استخدام علامة الجنيه ('#') للإشارة إلى تعليق (ما لم يكن جزءًا من توجيه # تتضمن أو ما لم يكن ..." راجع أيضًا visudo: #includedir sudoers.d (أرشفة من lzone.de/blog). - Eliah Kagan
المستخدم الخاص بي هو sudoer ولكن حصلت على هذا الخطأ: خطأ في تنفيذ الأمر كمستخدم آخر: غير مخول - SuB


دائما يستخدم visudo لتحرير ملف sudoers ، لا تقم بتحريره بنفسك. سيؤدي ذلك إلى منعك من حفظه على القرص ما لم يتم التحقق منه.


45
2017-11-20 17:08



بعد فوات الأوان 20/20 - code_monk
لن يمنع الكارثة. من السهل أن تنكر نفسك. - Joshua
هل يمكن استخدام visudo بواسطة scritps؟ إذا كان الأمر كذلك ، كيف؟ - Lukas
ليس لدي تثبيت visudo. لذلك فعلت pkexec vim. ثم يعرض قائمة المستخدمين ويسأل عن كلمة المرور. عندما أقوم بتوفير كلمة المرور ، فإنه يرمي الخطأ "خطأ في تنفيذ الأمر كمستخدم آخر: غير مخول". الرجاء المساعدة - Shyamkkhadka


اكتب في:

pkexec visudo

ثم قم بتغيير السطر الأخير

#includedir /etc/sudoers

إلى:

#includedir /etc/sudoers.d

ينبغي أن يحل مشكلتك.


20
2018-02-21 18:23



لقد لاحظت أن إزالة الرائد # من عند #includedir يسبب أخطاء في بناء الجملة، و # جزءًا من التوجيه ، على الأقل على Ubuntu 12.10. - SAFX
التي أنقذتني الكثير من الصداع. شكرا للطن :) - Nitroware
ليس لدي تثبيت visudo. لذلك فعلت pkexec vim. ثم يعرض قائمة المستخدمين ويسأل عن كلمة المرور. عندما أقوم بتوفير كلمة المرور ، فإنه يرمي الخطأ "خطأ في تنفيذ الأمر كمستخدم آخر: غير مخول". الرجاء المساعدة - Shyamkkhadka


إذا كان أي شخص آخر مثلي لم يكن لديك pkexec تثبيت ، أو لم يكن قادرا على تشغيل vi ، visudo ، nano أو أي محرر آخر لتغيير ملف sudoers يمكنك أن تكون متأكدا مع هذه العملية .. تم حفظها مع هذا:

  • اعادة التشغيل
  • اضغط مع الاستمرار على مفتاح shift أثناء التشغيل للحصول على خيار لوضع الاسترداد (أدخله)
  • أدخل سطر الأوامر كجذر (الخيار الثاني الأخير في قائمة اليرقات)
  • جهاز التمهيد remount ل rw ، وتطبيق حق exec للمستخدم ، وتحرير الملف

    mount -n -o remount,rw /
    chmod u+x /etc/sudoers
    nano /etc/sudoers
    

إصلاح هذا الخطأ وتكون سعيدا :)


10
2017-10-20 21:40



في حين أن الحل pkexec الذي اقترحه @ eliah-kagan يبدو أسهل ، إلا أن هذا الحل أكثر شمولية. على الجهاز الخاص بي اتضح أنه لا يوجد تثبيت pkexec وبالطبع لم أتمكن من تثبيته لأن sudo apt-get install pkexec بطريقة ما لم تنجح. - running.t


لا يوجد شيء خاطئ # تتضمن sudoer.d إزالة # تتضمن sudoer.d لن يحدث أي فرق.

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

فمثلا قل اسم المستخدم الخاص بك هو: دوللي اعتدت اتباع ما هو الخطأ

 dolly ALL = (ALL) ALL NO PASSWD: ALL

بناء الجملة الصحيح هو

dolly ALL = (ALL) ALL //give permission to everything, not good

أو

dolly ALL=(ALL) NOPASSWD:/usr/bin/thurderbird //good, give specific permission

أتمنى أن يساعدك هذا


6
2017-07-02 23:15



هناك طريقة أفضل من التأكد من عدم وجود أخطاء في بناء الجملة لاستخدامها دائمًا visudo عند تحرير هذه الملفات ، والتي تتأكد من عدم وجود أخطاء في بناء الجملة بالنسبة لك ، قبل تعديل الملف. visudo ليس فقط للتحرير /etc/sudoers- سيعمل أيضًا على إنشاء وتعديل الملفات في /etc/sudoers.d. وستعمل أيضًا مع أي محرر نصوص تريده. نرى مانج للتفاصيل. - Eliah Kagan
أما بالنسبة لإعطاء إذن محدد ، يرجى ملاحظة أن هذا مفيد فقط للأوامر / التطبيقات البسيطة للغاية ، لأن أي تطبيق معقد بما فيه الكفاية (بما في ذلك thunderbird، والتي لا ينبغي أبدا أن تعمل كجذر على أي حال) سيعطي بشكل فعال للمستخدم الوصول الكامل للنظام عند تشغيله كجذر. حتى وظيفة بسيطة على ما يبدو تفتح الباب للوصول إلى الجذر الكامل. على سبيل المثال ، يمكن للمستخدم الذي يمكنه تشغيل برنامج يمكنه حفظ ملف إلى موقع عشوائي مثل الجذر الحصول على وصول كامل للجذر (يمكن تثبيت /etc/sudoersأو إذا كانت قيود بناء الجملة تمنع ذلك ، فيمكنهم تثبيت /etc/crontab). - Eliah Kagan


إذا كنت افسدت الخاص بك sudoers الملف ، ستحتاج إلى:

  • إعادة التمهيد في وضع الاسترداد (ضرب الهروب أثناء التمهيد ، واختيار خيار وضع الاسترداد على شاشة اليرقة)
  • اختر خيار "تمكين الشبكة" (إذا لم يكن نظام الملفات الخاص بك سيتم تثبيته للقراءة فقط.)
  • Chosee الخيار 'إسقاط إلى جذر shell'
  • يركض visudoقم بإصلاح ملفك
  • إعادة تمهيد مع خيار نكش العادي

المصدر: - http://mario.net.au/content/recover-etcsudoers-ubuntu-1204


6
2017-12-14 10:59



مرحبا ، هل يزيل iptables ، ملفات النظام الحالي؟ - Shyamkkhadka


تشغيل وضع الاسترداد ثم اكتب هذا

chown -R root: root /etc/sudoers.d
chmod u = rwx، g = rx، o = rx /etc/sudoers.d/
chmod u = r، g = r، o ​​= /etc/sudoers.d/*

فقط يجب على المجموعة وجذر المستخدم قراءة privelege


3
2017-11-20 17:11





يمكنك تحرير إدخال التمهيد أثناء وجودك في grub أيضًا.

ببساطة إعادة تشغيل جهاز الكمبيوتر الخاص بك ، وانتظر حتى تظهر نكش. ثم اضغط على "e" في إدخال "Ubuntu" لتحريره.

ابحث عن سطر بـ "linux =" أو "kernel =" وأضف ببساطة "واحد" إلى نهاية ذلك السطر.

ثم اضغط F10 لتمهيد إدخال التمهيد المعدل مؤقتًا. سيعطيك هذا shell (بدون GUI) مع حقوق الجذر ويمكنك تحرير ملف sudoers مع s.th. مثل نانو / الخ / sudoers إلى حالته السابقة.

ثم إعادة التشغيل والقيام به.


2
2018-01-13 04:41





يمكنك أيضا تسجيل الدخول كجذر على tty وحدة التحكم مع السيطرة+الجبهة الوطنية (الجبهة الوطنية من 1 إلى 6) وتشغيل visudo.


2
2018-03-09 07:12





pkexec visudo

ثم تعود أخطائك


2
2018-01-01 08:23



ليس من الضروري استخدام pkexec - Braiam
Braiam visudo يجب أن يتم تشغيله كجذر. إذا sudo لا يعمل pkexec في بعض الأحيان. يتم تغطية هذا من قبل إجابتي السابقة... لكنها إجابة صحيحة ، visudo في حد ذاته (عند عدم تشغيله كجذر) لن يعمل ، وقد تكون هناك إجابات صحيحة وجيزة حتى عندما تتداخل توصياتهم بشكل كبير مع إجابات أخرى. وبطبيعة الحال ، إذا ذهب المرء إلى وضع الاسترداد ، فهذا هو غلاف الجذر ومن ثم لا sudo ولا visudo ضروري لأوامر مثل pkexec. ربما هذا ما تقصده ... - Eliah Kagan