باز کردن برنامه های گرافیکی با کاربر root

امین 25 جوملای 2025 زمان خواندن: ~1 دقیقه

قدیما خیلی راحت میشد با gksu برنامه ها رو با کاربر root از طریق یک پنجره که پسورد میخواست به صورت گرافیکی باز کرد. با ورود wayland همه این کاسه و کوزه ها شکست. اما انواع روشها برای رسیدن به این هدف بوجود اومد که در این ویکی میتونید اونها رو ببینید. اکثر این روشها این طوری هستن که شما یک کنسول (ترمینال) باز میکنید و دستور مربوطه رو با روشهایی که گفته میدید و اون برنامه از طریق ترمینال با یوزر root باز میشه.

اما هدف من اینه که آیکنی در بین اپلیکیشنها داشته باشم که وقتی روش کلیک میکنم یک پنجره باز بشه و از من پسورد root رو بخواد و بعد برنامه رو باز کنه. بدون دخالت کنسول و کامند و این حرفها. یک همچین چیزی:

photo_2025-07-25_21-08-51.jpg 

برای اینکار نیاز به pkexec داریم که در بسته polkit قرار داره. اگر شما یک دسکتاپ مدرن نصب کرده باشید احتمالا polkit هم جزو ملزومات نصب شده.

خب برای اینکه ببینیم باید چکار کنیم، ادامه مطلب رو ببینید.

یک فایل با نام دلخواه (من اسمش رو میذارم sugu یعنی مثلا super user gui ) در مسیری مثل /usr/local/bin/sugu درست کنید و این محتوی رو داخلش قرار بدید:

#!/bin/bash
pkexec env WAYLAND_DISPLAY="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" XDG_RUNTIME_DIR=/run/user/0 "$1"

و به اون مجوز اجرایی بدید:

# chmod +x /usr/local/bin/sugu

تمام شد! حالا شما هرجایی که بخواید (مثلا با Alt+f2) میتونید یک برنامه رو با کاربر  root باز کنید. مثلا:

$ sugu meld

کافیه با یک menu editor هم یک آیکن برای برنامه مورد نظرتون درست بکنید و در قسمت command همین عبارت رو قرار بدید.

اولین نفری باشید که دیدگاهی ارسال می کند!




حاصل سر و کله زدن های من با لینوکس