فتح / كتابة الملفات كمسؤول / الجذر باستخدام C ++ (UAC / gksudo / الخ.)

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

  •  05-07-2019
  •  | 
  •  

سؤال

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

وأعتقد بشكل عام، ويندوز فيستا يستخدم ملفات البيانات، OSX لديه مكتبة التفويض (<لأ href = "https://developer.apple.com/mac/library/documentation/Security/Reference/authorization_ref/Reference/reference هتمل "يختلط =" نوفولو noreferrer "> https://developer.apple.com/mac/library/documentation/Security/Reference/authorization_ref/Reference/reference.html )، ولينكس لديها مجموعة متنوعة من سودو الواجهات الأمامية.

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

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

المحلول

لويندوز فيستا، كنت في الأساس بحاجة إلى عملية مخصصة للقيام الإجراءات الإدارية. كما ذكرتم، فإن عملية تمكين المشرف في حاجة الى اضح لتحديد مستوى تنفيذ المطلوب (انظر هذا <وأ href = "http://msdn.microsoft.com/en-us/library/bb756929.aspx" يختلط = " نوفولو noreferrer "> MSDN المقالة لمزيد من التفاصيل).

إذا كنت تبحث عن كثب في أي تطبيق ويندوز الذي يبدأ غير مرتفعة ويدعم "رفع" نفسها، سترى أنه في الواقع يفتح عملية جديدة كاملة مرة واحدة وهناك حاجة امتيازات إدارية (على سبيل المثال الذهاب إلى إدارة المهام عندما يتم تمكين UAC ، انقر فوق "إظهار العمليات من كافة المستخدمين" ثم لاحظ كيف تعيد فتح مع امتيازات المسؤول).

وحتى ويندوز، والهندسة المعمارية وربما كنت بحاجة يتطلب عمليتين: عملية موحدة للقيام بمعظم العمل، وعملية المشرف للدعوة إلى القيام بعمليات المشرف. وسيتعين على العمليتين إلى التواصل عبر بعض وسائل آمنة (ربما <لأ href = "http://msdn.microsoft.com/en-us/library/aa365600(VS.85).aspx" يختلط = "نوفولو noreferrer" > تأمين اسمه الأنابيب ) بحيث يمكن أن يتم هذا العمل المشرف على باسم عملية القياسية.

وربما يكون هذا النهج للتعميم عبر منصات أخرى، وربما يمكن أن تستخرج في نوع من الدرجة / واجهة ذلك من شأنه أن التفاصيل الخاصة بالنظام الأساسي يست في حاجة الى تسرب من خلال.

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