سؤال كيفية إعداد كلمة المرور `sudo` على لينكس؟


كيف يمكن بكلمة المرور sudo يكون الإعداد إما على RHEL (فيدورا ، CentOS ، الخ) أو توزيعات أوبونتو؟ (إذا كان هو نفسه عبر التوزيعات ، فهذا أفضل!)

الإعداد: المعدات الشخصية و / أو المختبرية / التدريبية دون أي اهتمام بالوصول غير المصرح به (أي أن الأجهزة موجودة على شبكات غير عامة ، وأن جميع المستخدمين / جميعهم موثوق بهم تمامًا ، ومحتويات الأجهزة هي "plain-vanilla") .


137
2017-07-15 04:09


الأصل


الإجابة منRichipal هي actullay الأفضل في العمل بأقل جهد: يبدو أن قواعد sudoers تنطبق في ترتيب عكسي. - a1an
يتم تطبيق القواعد a1an @ في نفس الترتيب كما هو مذكور في ملف sudoers ، وعند تطبيقها يتم تجاوز نوع من بعضها البعض. ومن ثم إذا كنت لا أريد تغيير القاعدة على الإطلاق ، فسوف أضعه في نهاية الملف بحيث يتم تطبيقه في الأخير ولا يمكن تجاوزه. - rsjethani


الأجوبة:


تصحيح بفضل تعليق medina: وفقا لصفحة الرجل ، يجب أن تكون قادرا على الكتابة

ALL            ALL = (ALL) NOPASSWD: ALL

للسماح لجميع المستخدمين بتشغيل جميع الأوامر دون كلمة مرور.


للإشارة ، سأترك إجابتي السابقة:

إذا قمت بإضافة سطر من النموذج

%wheel         ALL = (ALL) NOPASSWD: ALL

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

بدلاً من ذلك ، يمكنك تحديد اسم مستخدم مستعار ،

User_Alias     EVERYONE = user1, user2, user3, ...

واستخدم ذلك:

EVERYONE       ALL = (ALL) NOPASSWD: ALL

على الرغم من أنك ستحتاج إلى التحديث /etc/sudoers في كل مرة تقوم فيها بإضافة أو إزالة مستخدم.


154
2017-07-15 04:25



لا ALL العمل بدلا من * لتحديد جميع المستخدمين؟ شاهد المثال في sudoers(5). - medina
medina: لذلك ، فاتني ذلك عندما كنت أقرأ صفحة الرجل. سوف تحرير. - David Z
تحت أوبونتو ، وإنشاء ملف تحت / etc /sudoers.d ووضع هذه الإدخالات في ذلك ، فإنه سوف يمنعك من الحاجة إلى تحرير sudoers - Xetius
في CentOS7 ، هذا الإدخال موجود بشكل افتراضي ، فقط علّق. - killjoy
تمكنت فقط لاستخدامها في centOS عن طريق نسخ / لصق ، فشلت كل محاولات لكتابة التكوين مباشرة. لكن النتيجة تبدو متطابقة باستثناء الفراغات ... - MUY Belgium


جربت الحلول أعلاه دون جدوى. عملت الحل التالي بالنسبة لي قم بتحرير الملف / etc / sudoers وأضف السطر التالي

username ALL=(ALL) NOPASSWD: ALL

ال مفتاح هو إضافته بعد السطر الأخير الذي يقول

#includedir /etc/sudoers.d

81
2018-05-19 15:23



// ، هذا يبدو وكأنه أفضل طريقة للقيام بذلك ، خاصة عندما ستضيف تطبيقات معينة قواعدها الخاصة لمستخدمي النظام ، Richipal. مزيد من المعلومات حول sudoers.d: sudo.ws/man/1.8.13/sudoers.man.html - Nathan Basanese
// ، هل ترغب في إضافة بعض التشخيصات من Gearoid Murphy إلى إجابتك؟ - Nathan Basanese
شكرا على هذا التوضيح. يبدو إضافته بعد السطر #includedir /etc/sudoers.d مهمًا في CentOS 7 بينما يبدو أنه يعمل بشكل جيد للحصول على السطر في الملف في CentOS 6 سابقًا. - dmohr
يبدو أن المشكلة في تجاهل NOPASSWD لعجلة ٪ تنشأ من /etc/sudoers.d/USERNAME تجاوز إذن NOPASSWD للمجموعة. تطبيق NOPASSWD في /etc/sudoers.d/USERNAME يحل المشكلة. - eel ghEEz


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

sudo -l

يجب أن يمنحك هذا مخرجات مثل:

User gmurphy may run the following commands on this host:
    (root) NOPASSWD: ALL
    (ALL) ALL

يظهر أنه تمت تهيئتي باستخدام امتيازات الجذر ولكنني ما زلت جزءًا من مجموعة (مشرف) متطابقة مع قاعدة sudo التي تتوقع كلمة المرور ("(ALL) ALL"). كان هذا يجبر سودو على دفعني. كانت القاعدة المعنية هي المستخدمين المسؤولين:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

بمجرد التعليق على ذلك ، كنت قادرا على sudo بدون كلمة مرور. آمل أن يكون هذا مفيدًا لشخص آخر.


24
2017-11-06 12:57



اهه شكرا! كان هذا يدفعني للمكسرات ... في حالتي ، كان مستخدمي جزءًا من مجموعة "sudo" بالإضافة إلى "admin" (التي أنشأتها) ، وتمت مطابقة الأذونات في كل منها ، كما كانت في حالتك . الآن هذه الاشياء تعمل! :) - neezer
تعليق خط الخروج هو أداة غير حادة. قد تكون مهتمًا بسماع أن "sudo يقرأ ملف sudoers ويطبق الأذونات بالترتيب من الأعلى إلى الأسفل. لذا فإن السطر الأخير في الملف سيحل محل أي تعارض سابق" وفقًا ubuntuforums.org/showthread.php؟t=1132821 - وهذا عمل بالنسبة لي. - David J.


في غضون /etc/sudoers هناك مثال على ذلك فقط في أسفل الملف:

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

9
2017-07-15 04:24



هذه العينة لم تكن لي - ولكن شكرا! - warren
مثل إجابتك بإيجاز - Pei


هناك طريقة أخرى للقيام بذلك دون لمس ملف sudoers.

  • تصحيح /etc/pam.d/su و uncomment السطر أدناه:

    auth           sufficient      pam_wheel.so trust use_uid
    
  • أضف المستخدم إلى wheel مجموعة.


5
2017-07-15 08:39





هناك طريقة أخرى للقيام بذلك دون لمس ملف sudoers.

  • تصحيح /etc/pam.d/sudo وأضف السطر أدناه:

    المصادقة كافية pam_wheel.so الثقة use_uid
  • أضف المستخدم إلى wheel مجموعة.

الدعائم ل "topdog" و "دانيال Serodio" للإجابة الأصلية فيما يتعلق "سو" بدلا من "sudo". اعتدت ذلك كمرجع ونسخ دون خجل ، وتعديل ، وظيفتهم.


1
2017-09-11 00:36



أعتقد أنه بدلاً من نسخ حرفًا حرفيًا ، سيكون من الأفضل اعتمادها ، لكن كن واضحًا حول كيفية اختلاف إجاباتك تمامًا. أفترض هذا يسمح بكلمة مرور su، بدلا من / فضلا عن كلمة المرور sudo؟ إضافة دانيال هي مجرد تنسيق ، بالمناسبة. - mwfearnley