سؤال تنفيذ sudo بدون كلمة المرور؟


مستوحاة من هذا سؤال....

أنا الشخص الوحيد الذي يستخدم نظامي مع 12.04.
في كل مرة أقوم بإصدار sudo أمر؛ يطلب النظام كلمة مرور المستخدم (وهو أمر جيد بطريقته الخاصة).
ومع ذلك كنت أفكر. دون تفعيل جذر الحساب؛ كيف يمكنني تنفيذ أوامر sudo التي لن تطلب كلمة مرور المستخدم للمصادقة.

ملاحظة: أريد تنفيذ أمر sudo دون المصادقة عبر كلمة المرور ؛ فقط عندما يتم تنفيذها عن طريق المحطة.
لا أريد إزالة هذه الطبقة الإضافية من الأمان من وظائف أخرى مثل استخدام "مركز برمجيات Ubuntu" أو تنفيذ برنامج نصي bash عن طريق سحب ملف drop.sh إلى الجهاز.


223
2018-06-06 12:30


الأصل


لذلك أنت فقط تريد أن يطلب منك كلمة المرور في المحطة ولأشياء أخرى لا ، أو بالطريقة الأخرى arround ؟! في كلا الاتجاهين ، وأعتقد أن لها خرق أمني كبير - Dr_Bunsen
أريد أن هذا النظام قد لا يطلب كلمة المرور إلا في المحطة ... لأي غرض آخر يجب على النظام أن يطلب كلمة مرور. هذا الشرط مؤقت فقط ، ويجب استخدامه أثناء تكوين n تركيب خوادم جديدة .. خلال عمليات تركيب الخادم الجديد ، فإنه يأخذ حقا ساعات من التهيئة بأوامر sudo .. إصدار كلمة المرور كل 15 دقيقة. هو الصداع. لا أريد استخدام حساب الجذر. - Z9iT
تحتاج إلى قراءة المناقشة في: askubuntu.com/questions/135428/... - david6
بالتأكيد يمكنك إطالة المهلة. أيضًا ، إذا كنت تقوم بإعدادات خادم جديدة بشكل متكرر ، فيجب عليك التفكير في أتمتة العملية. أنت لا تدفع لكتابة ، ويتم دفع لك حل المشاكل والحصول على القيام به. - MauganRa
ذات صلة: كيفية تشغيل الأمر sudo بدون كلمة مرور؟ - Eliah Kagan


الأجوبة:


sudo -i هي طريقة للذهاب إذا كنت لا ترغب في كتابة كلمة مرور كل 10 دقائق أثناء إجراء تعديلات في نظامك (أو أنظمة أخرى) ، ولا تريد تعديل أي ملفات نظام.

سوف ينتقل بك إلى الجذر باستخدام الخاص بك sudo كلمة مرور المستخدم ، عند إغلاق وحدة التحكم أو الكتابة exit عدت إلى مستخدمك العادي.


64
2018-06-06 13:36



هل هذا صحيح أنني أدخِل كلمة المرور مرة واحدة فقط ... وحتى الوقت الذي لا أخرج فيه ؛ الطقس 5 ساعات. أو 15 .... لن يطلب النظام المصادقة بكلمة المرور عند إصدار أي أمر sudo. - Z9iT
@ Z9iT حتى تكتب exit أو حتى تغلق نافذة المحاكي الطرفي. - Bruno Pereira
شكراً .. قبلت هذه الإجابة لأنها تخدم غرض إصدار أوامر sudo بدون مصادقة كلمة المرور لـ n-hours حتى الوقت الذي لن نخرج فيه .. لا يعد تعديل ملفات النظام زائدًا. - Z9iT
هذا لا يجيب على السؤال ، لأنك لا تزال بحاجة إلى إدخال كلمة المرور لتصبح جذرًا في هذه النقطة. - Adam F
ليس إذا كنت تقوم بتشغيل جهاز ظاهري في بيئة آمنة وكنت ترغب فقط في القيام بشيء ما فورًا ولا تريد التعامل مع كلمات المرور. هذا الجواب لا يجيب على السؤال ، في حين أنه يمكن القول بالمعلومات المفيدة. أتفق مع آدم ف - Jonathan Komar


النهج لحل مشكلتك هو وضع المستخدم في ملف sudoers ، كما ترون.

فتح نافذة المحطة الطرفية ونوع:

sudo visudo

في الجزء السفلي من الملف ، اكتب ما يلي:

$USER ALL=(ALL) NOPASSWD: ALL

أين $USER هو اسم المستخدم الخاص بك في النظام الخاص بك. احفظ ملف sudoers وأغلقه (إذا لم تقم بتغيير محرر المحطة الطرفية الافتراضي (ستعرف ما إذا كان لديك) ، فاضغط على ctl + x للخروج nano (لكن لاحظ أن لقطة الشاشة أدناه تظهر vim) ، وسيطلب منك الحفظ).

sudoers file]

بعد ذلك ، يمكنك ، في إطار المحطة الطرفية ، اكتب sudo <Whatever you want>دون المطالبة بكلمة المرور.

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

gui password prompt

وأعتقد أن هذا هو ما تريد.


438
2018-06-06 13:20



يوصى باستخدامه sudo visudo بدلا من تحريره مباشرة. أيضا تغيير أذونات sudoers قد قفل نفسك. عند التحرير مع vim، استعمال :wq! الكتابة إلى ملفات القراءة فقط والخروج من المحرر. بهذه الطريقة ، لا تكون الأذونات 644 ضرورية. - Lekensteyn
هذا هو خطر أمني خطير ، يمكن لأي شخص تولي أي حساب مع حقوق sudo السيطرة على النظام الكامل وقفل أي وصول آخر إلى هذا الكمبيوتر ، لا ينصح بجدية. - Bruno Pereira
@ wil93 كنت تفتقد النقطة: النصي الذي يدعو sudo install crapware لن تسأل عن كلمة مرور في هذه الحالة ، وقد تفسد كل شيء لديك ، ولا تحتاج إلى أن تكون جسديًا بجوار جهاز لتوزيع البرامج النصية في المرة الأخيرة التي دققت فيها ... هذا مجرد مثال. - Bruno Pereira
BrunoPereira إذا كنت تخطط لتشغيل البرامج النصية غير الموثوق بها أن هو الخطر الأمني ​​(حتى لو طلب sudo كلمة مرور ، يمكن أن يكون البرنامج النصي الخبيث دائمًا rm -rf ~العبث بعض الأشياء حتى). بشكل عام ، لم أكن أسمي «خطرًا أمنيًا خطيرًا» الإزالة البسيطة لكلمة سر من sudo. - wil93
توافق على @ wil93. عند تشغيل برنامج نصي غير موثوق ، فإن إدخال كلمة المرور ليس أكثر من فرصة لإلغاء العملية ، في حين أشك في أنها غير مجدية بالنسبة لمعظم الناس. الهدف من ذلك هو أن تعرف من أين النصي وماذا يفعل. - Chad


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

sudo visudo

هذا يفتح محرر ويوجهه إلى ملف sudoers - افتراضيات Ubuntu إلى nano ، تستخدم أنظمة أخرى Vi. أنت الآن مستخدم متميز يقوم بتحرير أحد أهم الملفات على نظامك. لا ضغوط!

(السادس مع تعليمات محددة لاحظت مع (السادس!). تجاهل هذه إذا كنت تستخدم نانو.)

استخدم مفاتيح الأسهم للانتقال إلى نهاية Defaults خط.

(السادس!) اضغط على المفتاح A (رأس المال "a") للتحرك في نهاية السطر الحالي وأدخل وضع التحرير (إلحاقي بعد آخر حرف على السطر).

الآن اكتب:

,timestamp_timeout=X

حيث X هو انتهاء المهلة في دقائق. إذا حددت 0 ، فستتم مطالبتك دائمًا بكلمة المرور. إذا قمت بتحديد قيمة سالبة ، فلن تنتهي صلاحية المهلة. مثلا Defaults env_reset,timestamp_timeout=5.

(السادس!) اضغط على Escape للرجوع إلى وضع الأوامر. الآن ، إذا كنت راضيًا عن التحرير ، اكتب :w  أدخل لكتابة الملف و :q  أدخل للخروج السادس. إذا ارتكبت خطأ ، فربما تكون أسهل طريقة هي إعادة الإقلاع من البداية ، للخروج دون الحفظ (ضرب هرب للدخول في وضع الأوامر) ثم اكتب: ف! أدخل.

نجاح السيطرة+X، ثم Y، ثم أدخل لحفظ ملفك والخروج من نانو.

قد ترغب في قراءة صفحات sudoers و vi للحصول على معلومات إضافية.

man sudoers
man vi

إعادة تعيين قيمة المهلة باستخدام:

sudo -k

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

تحرير ملف sudoers

افتح نافذة طرفية. اكتب في sudo visudo. أضف السطر التالي إلى END للملف (إذا لم يكن في النهاية يمكن إبطاله بواسطة إدخالات لاحقة):

<username> ALL=NOPASSWD: ALL

يحل محل <username> مع اسم المستخدم الخاص بك (بدون <>). هذا على افتراض أن Ubuntu قام بإنشاء مجموعة بنفس الاسم مثل اسم المستخدم الخاص بك ، وهو أمر نموذجي. يمكنك استخدام مستخدمي المجموعة بالتناوب أو أي مجموعة أخرى من هذا القبيل أنت فيها. فقط تأكد من أنك في هذه المجموعة. يمكن التحقق من ذلك بالانتقال إلى النظام -> الإدارة -> المستخدمين والمجموعات.

مثال:

michael ALL=NOPASSWD: ALL

اكتب في ^ X (السيطرة+X) للخروج. هذا يجب المطالبة للحصول على خيار لحفظ الملف ، اكتب في Y للحفظ.

قم بتسجيل الخروج ، ثم قم بتسجيل الدخول مرة أخرى. سيسمح لك ذلك الآن بتشغيل الأمر sudo دون المطالبة بكلمة مرور.

حساب الجذر

تمكين حساب الجذر

نادرًا ما يكون تمكين حساب الجذر ضروريًا. تقريبا كل ما تحتاج إلى القيام به كمسؤول عن نظام Ubuntu يمكن أن يتم عن طريق sudo أو gksudo. إذا كنت تحتاج حقًا إلى تسجيل دخول ثابت ، فإن أفضل بديل هو محاكاة shell تسجيل دخول الجذر باستخدام الأمر التالي:

sudo -i

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

sudo passwd root

إعادة تعطيل حسابك الجذر

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

sudo passwd -dl root

مجموعة sudo على مستوى النظام

root$ echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

تسجيل الخروج ، ثم العودة.

إعادة تعيين sudo timeout

يمكنك التأكد من أن sudo يطلب كلمة المرور في المرة القادمة عن طريق تشغيل:

sudo -k

30
2017-10-30 01:15



لقد نشرت هذا قبل أن أضفته ، للحصول على طريقة واسعة للنظام للقيام بذلك والبعض الآخر يقرأ هنا: - user209328
كانت هذه إجابة متأخرة ، ولكنها الأكثر شمولية من حيث الخيارات التي توفرها لك. - jenming


والطريقة المفضلة لمنح أذونات فردية (أو مجموعات) هي إضافة ملفات تحت /etc/sudoers.d

هذا يفصل بين التغييرات المحلية من النهج الافتراضي ويوفر الوقت في حالة تغيير الملف sudoers الملف.

فمثلا:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/username

سيجعل من الواضح جدا والتي يتم منح المستخدمين إذن.

وبالمثل ، يمكن استخدام ملف واحد لإدارة أوامر متعددة:

sudo echo "username ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/local

لطفا أنظر /etc/sudoers.d/README  للمزيد من المعلومات.


10
2018-02-01 15:54



فشل الأمر صدى ، على الرغم من أنني جذر. ولكن ، أضفت الملف وحررته مباشرة ، وعمل هذا على أحدث إصدار من أوبونتو (في حين لم يضيف المستخدم إلى sudoers مباشرة!) - scape
الطريق الصحيح هو أن تفعل ذلك tee أمر. - woto


لطيفة واحدة الخطوط الملاحية المنتظمة لإزالة sudo يطالب المستخدم الحالي

sudo bash -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)'

5
2018-06-27 17:50



أعتقد أنه يمكنك فعل ما يلي: echo "$USER ALL=(ALL:ALL) NOPASSWD: ALL" | sudo env EDITOR="tee -a" visudo، فقط visudo الاحتياجات sudo بعد كل شيء (وحتى env لن تكون هناك حاجة في التكوين الافتراضي ، IIRC). - muru
هناك الكثير مما يمكن أن يحدث خطأ هنا (كل خطأ مستخدم ، بالطبع) ، أنه من المفضل ، في رأيي المتواضع جدا ، لتحرير الملف sudoer مباشرة (sudo visudo) ، أثناء اختبار النتيجة (لا يزال المحرر مفتوحًا) ، بالنسبة إلى هؤلاء المستخدمين الجدد الذين قد يميلون لتجربة هذا "الخطوط الملاحية المنتظمة". - michael
شكرا على ملاحظاتك! كنت فقط سرعان ما يحاول البرنامج النصي ، ify إزالة المطالبة كلمة السر sudo في بلدي VMs اختبار متقلبة. لا تتردد في اقتراح التحسينات :) - Eric Landry


بالطبع لا ينصح بما تريد القيام به. بعد فترة ، على الرغم من الدخول sudo يصبح تلقائيا بحيث تنقص فائدته.

نهج آخر هو ترك ملف sudoers الخاص بك كما هو ، وأثناء القيام بشيء معقد إلى خوادمك المئات ، أدخل sudo bash. سيعطيك ذلك صدفة سيتم توثيقها كجذر حتى تخرج منها.


4
2018-06-06 13:27



sudo -s أو sudo -i ربما كلاهما أفكار أفضل من sudo bashلأنهم يضمنون أن البيئة عاقلة وأشياء. - Darael
"العقل والأشياء" ليست عموما في عالم "أفكار أفضل" ، هل يمكن أن يقدم أحدهم تفسيرا تقنيا لماذا sudo -s أو sudo -i أفضل من sudo bash؟ (تحرير: إليكم سؤال ذو صلة askubuntu.com/questions/376199/... ) - Nuzzolilo
عدد من sudo الأوامر (التفكير خاصة من sudo pip ...) تطلب sudo -H (قم بتعيين HOME) حتى يعمل الأمر بشكل صحيح. في حالات أخرى، sudo -E (الحفاظ على env) قد تكون مطلوبة. جري sudo bash ربما ستعمل في معظم الحالات ، ولكن ليس في كل شيء ، وعندما لا يحدث ذلك ، لن يكون من الواضح لماذا. - michael
sudo سو هو الطريقة التقليدية لتبديل الأدوار والبدء في التصرف مشرف نظام. - user1656671


من عند مستخدم سوبر يأتي إجابة جيدة:

استخدم رمز التبديل -S الذي يقرأ كلمة المرور من STDIN:

echo <password> | sudo -S <command>

يحل محل <password> مع كلمة المرور الخاصة بك.


1
2018-05-17 00:12