كيف يمكنني تعديل ملف / تستضيف التحديث (الخ / تستضيف) باستخدام أي لغة برمجة

StackOverflow https://stackoverflow.com/questions/1642055

  •  10-07-2019
  •  | 
  •  

سؤال

وحيوي أريد أن تعديل / تستضيف التحديث (الخ / تستضيف) ملف لإضافة المجال.

لتعديل المضيفين (الخ / تستضيف) ملف تتطلب المسؤول الامتيازات. باستخدام لينكس يمكنني القيام بذلك عن طريق هذا الأمر

سودو جي إديت / الخ / تستضيف

ولكن أحاول أن تفعل هذا من استخدام لغة برمجة.

وكيف يمكنني أن أفعل ذلك؟

هل كانت مفيدة؟

المحلول

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

لقيام بذلك دون المطالبة، المستخدم سيكون لاقامة بعض الوسائل لتحقيق ذلك ك الجذر. بمعنى آخر. setuid'ing تطبيق المساعد، وتركيب مفتاح كلمة السر أقل، وتعديل شجرة LDAP، أو بطرق أخرى مختلفة. هذا قليلا 'رديء' لعدم وجود مصطلح أفضل.

ولا توجد طريقة لجعل هذا العمل للمستخدم الذي لا يملك عادة قدرات تجاوز الصلاحيات.

نصائح أخرى

وسيحتاج البرنامج لتكون قيد التشغيل مع الامتيازات المناسبة. واحدة من التقنيات الكلاسيكية هو جعل ملف المملوكة من قبل الجذر وتعيين بت setuid. عندما يتم تشغيل البرنامج، وسوف يصبح الجذر وسوف تكون قادرا على تعديل / الخ / تستضيف.

وقال، رمز setuid هو محفوف بالمخاطر. خطأ في رمز يمكن أن يسبب البرنامج أن تفعل شيئا سيئا لدرجة أن النظام الخاص بك وتصبح unuseable. بعض البق يمكن استخدامها من قبل المستخدمين المؤذيين لتشغيل البرامج التعسفية كجذر والاستيلاء على النظام الخاص بك.

وأنت لا يزال يجب أن يكون لديك الأذونات المناسبة لتحرير الملف.

لتغيير الملف، فتح الملف في وضع القراءة / الكتابة / إلحاق (أي وضع "a" باستخدام fopen()) وكتابة نص جديد إلى نهاية الملف.

وأفترض أنك في موجه الأوامر، حيث يمكن إصدار هذا الأمر سودو ..

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

وملخص: ما هي اللغة التي تعرفها؟ => استخدام ذلك!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top