منبع اصلی نوشتار زیر در این لینک قرار دارد

شرط اجرای اسکریپت های bash با یوزر root

تقریبا هر فایلی که پرمیشن اجرا داشته باشد را می توان با هر یوزی به اجرا در آورد اما نکته ی اصلی این جاست که فایل اجرایی در طی فرایند اجرا درست کار می کند یا نه . به عنوان مثال به بعضی از پرونده ها و دایرکتوری ها دسترسی دارد یا خیر .

حال زمانی را تصور کنید که می خواهیم اسکریپت ما تنها با یوزر روت اجرا شود یعنی در اولین مرحله از اجرای اسکریپت , ابتدا چک شود که اسکریپت اجرا شده توسط روت اجرا شده است یا خیر .

برای این مورد می توان تابعی به صورت زیر تعریف کرد و آن را متناسب با اسکریپت در جایی مناسب فراخوانی کرد :

function check {

if [ "`whoami`" != "root" ]; then
        echo '[-] Please use root user or sudo'
        exit 1
fi

}

توضیحات تابع :

1. همان طور که مشاهده می کنید از یک شرط استفاده شده است .

2. با استفاده از دستور whoami می توان یوزر اجرایی و فعال را مشاهده کرد .

3. عبارت =! در این جا به معنای این است که : اگر خروجی دستور whoami برابر با root نبود آنگاه …

4. با استفاده از echo خروجی ای با مضمون استفاده از یوزر root یا sudo را چاپ کردیم .

5. در نهایت با دستور exit اجرای اسکریپت متوقف خواهد شد .

 

نکات :

نکته 1 : ممکن است دستور whoami در توزیع ما وجود نداشته باشد لذا می توان خط 3 را به شکل زیر باز نویسی کرد :

if [ "$(id -u)" != "0" ]; then

و یا :

if [[ $EUID -ne 0 ]]; then

 

نکته 2 : اگر اسکریپتی از طریق sudo اجرا شده باشد دقیقا به معنای اجرای آن اسکریپت توسط یوزر روت است .

 

منبع : او اس لرن دات آی آر | http://OSLearn.ir

نویسنده : E2MA3N

از این مطلب راضی هستید ؟ می خواهید به سایت کمک کنید ؟ رضایت خودتون رو با دونیت به ما اعلام کنید . برای دونیت روی خرید کلیک کنید . با تشکر



برچسب ها : , , , , , , , , , , , ,

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

به اين صفحه امتياز دهيد