بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
تعديل سياسة polkit للدخول على الأقسام من دون كتابة كلمة المرور مثلا أقسام ويندوز NTFS .
ملاحظة أرجو التركيز وانا لا أتحمل أي مسؤولية كل ما تفعلوه على مسؤوليتكم الشخصية .
هدف الشرح ليس فقط الدخول على الأقسام من دون طلب كلمة المرور هدف الشرح سرد بعض المعلومات وليس كلها التي قد لا يعلمها الجميع .
1-الطريقة الأولة والتي يجب عدم إستخدامها هي التعديل على ملفات النظام مباشرتا لكن أشرحها حتى تتوضح الأمور.
أولا بعض المعلومات بشكل بسيط هناك ملفات policy تحتوي إجراءات ( actions ) وسرد للقواعد التي تحكم هذه إجراءات (action) ,مثال في الصورة في الأسفل الملف الخاص بالبرنامج المسؤول عن عمل mount للأقسام له أكثر من action لكن الذي يهمنا الان إجراء org.freedesktop.udisks2.filesystem-mount-system نلاحظ القواعد التي تحكمه كلها تحتاج كلمة مرور إختصار auth_admin بشكل بسيط أي ان هذا الإجراء عند تنفيذه سيطلب كلمة مرور.
نلاحظ مكان الملفات وانا إستخدمت محرر النصوص gedit لتسهيل الشرح .
نبحث عن org.freedesktop.udisks2.filesystem-mount-system
الان بكل بساطة وفقط ل action الذي يسمى org.freedesktop.udisks2.filesystem-mount-system ممكن إستبدال auth_admin ب كلمة yes كما في الصورة في الأسفل ويصبح بإمكاننا فتح الأقسام من دون طلب كلمة المرور .
2-الطريقة الثانية والصحيحة .
الطريقة الثانية هي بكتابة rules في مجلد etc/polkit-1/rules/ وهذه القواعد ستتجاوز القواعد الأساسية الموجودة في ملف org.freedesktop.udisks2.policy أي أن القواعد الجديدة سيكون لها الأولوية.نتابع كما في الصور في الأسفل نقوم بإنشاء ملف ونسميه مثلا 00-mountntfs.rules و نكتب القواعد داخله.
sudo gedit /etc/polkit-1/rules.d/00-mountntfs.rules
القواعد المكتوبة في الرابط في الأسفل.
الأن في أي وقت ممكن التراجع عن الامر بكل بساطة من خلال حذف ملف .
sudo rm /etc/polkit-1/rules.d/00-mountntfs.rules
3-بعض المعلومات عن ال rules المكتوبة في ثاني طريقة .
1-أولا الrules تكتب بلغة javascript .
2-polkit.addRule أي أضف rules جديدة .
3- if action.id=="org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("wheel") بشكل بسيط هو شرط يعني إذا تم تنفيذ هذا الإجراء و كان المستخدم في مجموعة wheel ,إذا تحقق هذين الشرطين return polkit.Result.YES كأنك تقول له إستبدل auth_admin بكلمة yes .
4-معلومات متفرقة .
أولا ماهو هذا الشيء الذي نتكلم عنه ؟بشكل بسيط هو شيء شبيه ل sudo لكن لإستخدامه بواجهة رسومية إفتحو أي Terminal وإكتبو pkexec كما في الصور في الأسفل .
ثانيا كيف ممكن إستعراض كل ال action المتوفرة .وعرض بعض المعلومات عن action معينة نتابع بالصور في الاسفل .
ثالثا أنا شرحت الذي أعرفه ولم أشرح كل شيء لمزيد من المعلومات نستخدم man مثلا man pkexec و نتابع الروابط في الأسفل .
https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
https://wiki.archlinux.org/index.php/Polkit
http://www.linuxac.org/forum/threads/73410-%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-%D8%A7%D9%84%D8%A8%D8%B1%D8%A7%D9%85%D8%AC-%D8%8C-%D9%88%D8%A7%D9%84%D8%A3%D9%85%D8%A7%D9%86