1
أمر واحد يثبّته، وخيار واحد يتراجع عنه
tmux
تشمله الأداة — وهي الحالة التي يفوّتها إعداد macOS الافتراضي من غير أن تلاحظ
0
إعدادات تحتاج إلى صيانة؛ فهو يصمد أمام تحديثات النظام
MIT
الرخصة، وسكربت تعديل PAM منشور بأكمله
أمران، مرة واحدة ثم تنساهما.
الإعداد الافتراضي سطر واحد في الملف الخطأ؛ أما هذه الأداة فتكتب السطر في الملف الصحيح.
brew install
تجيء الصيغة من tap الاستوديو، وتصحبها pam-reattach لأجل tmux.
sudo touchid-sudo
يكتب الأمر سطر pam_tid.so في sudo_local — الملف الذي أنشأه macOS 14+ لهذا النوع من التجاوزات المحلية بالتحديد — ولا يمسّ الأسطر غير المتعلقة.
ثم استخدم sudo كالمعتاد
بصمتك بدل كلمة مرور تكتبها — في الطرفية، وفي الـIDE، وداخل tmux بالذات؛ فهي الحالة التي ظل الإعداد الافتراضي يفوّتها.
ما يفعله السكربت فعلًا بالترتيب الذي ينفّذه به.
| المرحلة | ما يجري |
|---|---|
| الفحص المسبق | macOS، وسطر التضمين لـSonoma فأحدث موجود، وpam_tid.so في مكانه، وبصمة مسجّلة |
| النسخ الاحتياطي | ينسخ السكربت الإعداد السابق إلى /etc/pam.d/sudo_local.bak |
| التحقق | يشغّل sudo -n باسمك بعد الانتهاء، ثم يفحص النتيجة بحثًا عن أخطاء PAM |
| التراجع | يعيد النسخة الاحتياطية تلقائيًا إن فشل التحقق، ويخرج برمز غير صفري |
| التكرار بلا أثر | تشغيله مرة أخرى لا يغيّر شيئًا؛ والأسطر غير المتعلقة في sudo_local تبقى مكانها |

brew install abd3lraouf-studios/tap/macos-touchid-sudo
sudo touchid-sudoنوصي بالتثبيت عبر Homebrew؛ ومثبّت curl في الـREADME.
سؤال الأمان — سطح تنصّت أقل على لوحة مفاتيحك.
sudo لا يزال يشترط حضورك عند الجهاز ومطابقة بصمتك، وإن لم تنجح البصمة رجع إلى كلمة مرورك، من غير أن يلتف عليها. أما التغيير الجوهري فهو أن مطالبة sudo لم تعد تعبر لوحة مفاتيحك — سطح تنصّت واحد يزول بذلك. ومن يستطيع أصلًا تشغيل الكود باسمك لا تصدّه هذه الآلية ولا تلك.
سكربت التثبيت قصير ومقروء، وهو ما يعمل بصلاحيات root: اقرأه قبل أن تشغّله. الفحص المسبق والنسخ الاحتياطي والتحقق والتراجع كلها في الجدول أعلاه، لا في الكلام التسويقي.
أسئلة
هل يصمد أمام تحديثات macOS؟
نعم. sudo_local هو الملف الذي خصصته Apple لتجاوزات PAM المحلية، وتحديثات النظام تتركه وشأنه. ولهذا السبب بعينه يذهب السطر إليه، لا إلى ملف sudo نفسه.
كيف أتراجع عنه؟
sudo touchid-sudo --disable يعيد sudo إلى كلمة المرور وحدها، ثم brew uninstall يزيل الأداة.
لماذا لا يغطي الإعداد الافتراضي حالة tmux؟
يشغّل tmux الأمر sudo في عملية خادم خارج جلسة طرفيتك، فلا تصلها مطالبة Touch ID أبدًا. أما pam-reattach فيسدّ هذه الفجوة، والمثبّت يوصله متى كان موجودًا.
هل تشغيل المثبّت آمن؟
يعمل بصلاحيات root، فاقرأه أولًا — سكربت قصير واحد لا أكثر. يجري الفحص المسبق، وينسخ sudo_local احتياطيًا، ويتحقق عبر sudo -n، ويرجع عن كل شيء عند أول فشل.
بصمتك، حتى داخل tmux.
sudo يستجيب لـTouch ID بدل كلمة مرور تكتبها — وداخل tmux أيضًا، حيث يتوقف الإعداد المعتاد عن العمل من غير أن تنتبه. أمر واحد من Homebrew يضعه في مكانه.
Get it on GitHubمجاني · MIT · macOS 14 وما بعده
خلف هذا المنتج استوديو من شخص واحد. فإن كان قد وجد مكانه في يومك، فادعم الإصدار القادم ←
Touch ID for sudo