سلام دوستان . می دونیم که برای چک کردن پرمیشن یک فایل خیلی ساده میشه از دستور ls استفاده کرد و یا برای بررسی دقیق تر از دستور stat استفاده کرد . اما نکته ای که وجود داره اینه که این دستورات معمولا زمانی استفاده میشن که پشت ترمینال یک لینوکس نشده باشیم و تمامی کار ها و دستورات رو خودمون وارد کنیم اما زمانی که بخوایم این کارها و دستورات رو به یک برنامه واگذار کنیم، یکم نحوه نوشتن کد و دستوراتی که باید استفاده کنیم متفاوت میشه .

در واقع میشه گفت دستوراتی مثل ls یا stat برای کاربر در نظر گرفته شده اند چرا که خروجی بسیار خوانا دارند اما طبیعتا یک برنامه برای چک کردن پرمیشن یک فایل نیازی به خروجی خوانا و با جزییات ندارد.

بحثی که امروز می خواهیم دنبال کنیم بسیار ساده هست و می دونید که برای چک کردن پرمیشن یک فایل از چه روش هایی باید استفاده کرد اما همین حکم رو در داخل bash script دنبال می کنیم چرا که طبیعتا در داخل یک برنامه نمیشه از دستوری مثل ls یا stat استفاده کرد.

برای این منظور از دستور test استفاده می کنیم که به صورت پیشفرض خروجی برای ما چاپ نمی کند ( چرا که قصد استفاده در اسکریپت رو داریم ) . به مثال زیر توجه کنید :

نکته : از سویچ w- برای بررسی پرمیشن نوشتن استفاده کردیم .

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

قبلا به خروجی درست و غلط برنامه ها اشاره کردیم پس می توان دستور بالا رو به شکل زیر استفاده کرد :

نکته : در دستور بالا از logical and & logical or استفاده کردیم . برای آشنایی بیشتر با این مفاهیم به این آموزش مراجعه کنید .

 

میشه حدس زد وقتی سویچ w- نقش چک کردن پرمیشن نوشتن رو بازی می کنه، پس در نتیجه سویچ x- نقش چک کردن پرمیشن اجرا رو بر دوش داره و البته همین طور سویچ r- جهت پرمیشن خواندن .

چک کردن دو پرمیشن دیگه دقیقا مثل مراحل بالاست. حالا اجازه بدید برنامه ای رو آماده کنیم که فایل مورد نظر رو از کاربر بگیره و پرمیشن اون فایل رو برامون نمایش بده .

حال کافیه برنامه خودمون رو به شکل زیر اجرا کنیم :

خروجی گرفته شده :

 

نویسنده : ایمان همایونی
ایمیل نویسنده : info@OSLearn.ir
منبع : وب سایت او اس لرن – http://oslearn.ir
از مطالب وب سایت راضی هستید ؟ رضایت خودتون رو با دونیت به ما اعلام کنید. لطفا برای دونیت روی آیکون زیر کلیک کنید.
 حمایت مالی

درباره نویسنده :

ایمان همایونی هستم، از سال 2009 با گنو لینوکس فعالیت خودم رو در زمینه ی کامپیوتر و IT شروع کردم و تا الان موفق به گذروندن دوره هایLPIC 1 / LPIC 2 / VCP5-DCV / MCITP / CCNA / MTCNA شدم . مدتی در زمینه امنیت فعالیت هایی داشتم اما در حال حاضر تمرکز خودم رو بر روی مجازی سازی و لینوکس گذاشته ام .

تمام پست های من - وب سایت من