تقریبا هر فایلی که پرمیشن اجرا داشته باشد را می توان با هر یوزی به اجرا در آورد اما نکته ی اصلی این جاست که فایل اجرایی در طی فرایند اجرا درست کار می کند یا نه . به عنوان مثال به بعضی از پرونده ها و دایرکتوری ها دسترسی دارد یا خیر .
حال زمانی را تصور کنید که می خواهیم اسکریپت ما تنها با یوزر روت اجرا شود یعنی در اولین مرحله از اجرای اسکریپت , ابتدا چک شود که اسکریپت اجرا شده توسط روت اجرا شده است یا خیر .
برای این مورد می توان تابعی به صورت زیر تعریف کرد و آن را متناسب با اسکریپت در جایی مناسب فراخوانی کرد :
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
از این مطلب راضی هستید ؟ می خواهید به سایت کمک کنید ؟ رضایت خودتون رو با دونیت به ما اعلام کنید . برای دونیت روی خرید کلیک کنید . با تشکر