اجرای برنامه در سطح دسترسی root در lazarus

۳ بهمن ۱۳۹۴ لازاروس لینوکس

به نام دانای برحق

مقدمه

شاید اگر شما با لینوکس و دلفی با هم کار کردید سراغ لازاروس هم رفته باشید این پلنگ مظلوم خوب با برنامه نویس های دلفی راه میادش با وجود لنگ زدن بازم سعی می کنه هواتو داشته باشه اما مسائله ای تو لینوکس وجو داره که توی ویندوز هم بخشی از بدل زده شده تو لینوکس دسترسی برنامه ها دو حالت هستش حالت کاربر عادی یا کاربر root یا ریشه که دسترسی کامل رو سیستم داره.
همین حالت تقریبا همون معادل run as admin در ویندوز هست اما با تفاوت های فاحش که اینجا جای بحث نیست.

 

Linux_Android_Root01
این مطلب فک نکنم حتی به انگلیسی وجود داشته باشه ولی ما فقط به پارسی منتشرش می کنیم.

موارد مورد استفاده :

یونیت (ها):

 Process

 

تابع (ها) :

 GetUserDir , RunCommand

سایر موارد

 Application class, gksu app

نحوه run شدن برنامه در حالت دسترسی root :

روی فرمتون دوبار کلیک کنید تا رویداد FormCreate برای ویرایش نمایش داده شود سپس کد زیر رو داخل کپی کنید:

uses Process;
...
procedure xxxx.FormCreate(Sender: TObject);
var
   outp : String;
...
begin
  if Pos('root',GetUserDir()) > 0 then
  begin
     ShowMessage('now root access N-Joy');
  end
  else
  begin
    //ShowMessage('non-root');
    RunCommand('gksu',' '+Application.ExeName,outp);
    //ShowMessage(outp);
    Application.Terminate;
  end;
end;

 

البته با توجه با تغییرات در حد درک برنامه نویسش و توضیحات:

یونیت مورد نظر رو اضافه می کنیم با تابع GetUserDir و جستجو در آن متوجه میشم که این یوزر ریشه است یا خیر؟
در صورت ریشه نبودن دستور RunCammand رو اجرا می کنیم این دستور کارش خیلی ساده است با دستور gksu پسورد رو از کاربر میخواد با این برنامه برنامه خودمون رو دوباره باز می کنیم.

به همین سادگی پس از باز شدن برنامه از کاربر password  درخواست میشه و پس از ورود صحیح برنامه با حالت روت بالا میادش.

💬

شاید امروز جواب خیلی از سؤال‌ها را بتوان از AI گرفت، اما تولید مطالب تخصصی، تجربه‌محور و عمیق هنوز به انگیزه نیاز دارد. این نظرات و بازخوردهای شماست که به ما نشان می‌دهد ادامه دادن این مسیر ارزشمند است.

دیدگاه شما چیست؟

نظرات (0)


ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

عضویت در شبکه‌های اجتماعی

جدیدترین مقالات و نکات برنامه‌نویسی را سریع تر از دیگران مطلع شوید.