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

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

سلام دوستان . بار های دیدم که ابهاماتی در خصوص پرمیشن ها در بین دوستان وجود دارد لذا ۸ تا از سوالاتی که فکر می کنم دارای ابهام هستند رو مطرح و سپس به بررسی هر کدام می پردازیم .

 

سوالات ابهام دار :

۱. فایلی پرمیشن نوشتن دارد اما پرمیشن اجرا و خواندن ندارد . می توان در آن چیزی نوشت ؟ بله

۲. فایلی پرمیشن نوشتن دارد اما پرمیشن اجرا و خواندن ندارد . می توان آن را با ویرایشگر باز کرد ؟ خیر

۳. فایلی پرمیشن اجرا دارد اما پرمیشن خواندن و نوشتن ندارد . می توان آن را اجرا کرد ؟ بستگی دارد

۴. فایلی پرمیشن خواندن دارد اما پرمیشن اجرا و نوشتن ندارد . می توان آن را اجرا کرد ؟ خیر

۵. فایلی پرمیشن نوشتن دارد اما پرمیشن اجرا و خواندن ندارد . می توان آن را اجرا کرد ؟ خیر

۶. شرط لازم برای اجرا یک برنامه داشتن هم زمان پرمیشن اجرا و خواندن است ؟ خیر

۷. اولین شرط لازم برای اجرا یک برنامه داشتن پرمیشن خواندن است ؟ خیر

۸. بهتر است جهت اجرای یک برنامه پرمیشن خواندن و اجرا با هم در نظر گرفته شود ؟ بله

 

 

توضیح سوال اول :

برای درک بهتر این موضوع کافیست عبارتی رو به آخر فایل مورد نظر اضافه کنیم . به عنوان مثال :

iman@OSLearn:~$ echo hi >> file

 

توضیح سوال دوم :

توجه داشته باشید که ویرایشگر در اولین قدم اقدام به خواندن و نمایش فایل می کند لذا در این مرحله دچار مشکل و ارور می شود چرا که اجازه خواندن فایل را ندارد .

 

توضیح سوال سوم :

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

پس می توان این طور گفت که اسکریپت ها نیاز به پرمیشن خواندن نیز دارند چرا که مفسر باید بتواند فایل را بخواند اما برنامه هایی که کامپایل شده اند نیازی به پرمیشن خواندن ندارند.

 

توضیح سوال چهارم :

جواب این سوال خیر است اما نه به صورت 100٪ چرا که ترفند هایی وجود دارد که تنها با داشتن پرمیشن خواندن می توان برنامه ای را اجرا کرد .

به عنوان مثال تنها پرمیشن خواندن به یک اسکریپت bash یا python دهید و سعی کنید به شکل زیر آن ها را اجرا کنید :

iman@OSLearn:~$ bash script.sh
iman@OSLearn:~$ python script.py

حال سعی کنید به این صورت این دو اسکریپت را اجرا کنید :

iman@OSLearn:~$ ./script.sh
iman@OSLearn:~$ ./script.py

می بینید که در حالت دوم پیغامی با مضمون نداشتن پرمیشن ( اجرا ) صادر میشود.

 

توضیح سوال پنجم :

تقریبا این سوال واضح و معلوم است. دسترسی به ادیت کردن فایل ربطی به اجرا ندارد .

 

توضیح سوال ششم :

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

 

توضیح سوال هفتم :

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

 

توضیح سوال هشتم :

باز هم بستگی به نوع برنامه دارد، این که برنامه کامپایل شده یا اسکریپت است . اما در مجموع می توان گفت بهتر است پرمیشن اجرا و خواندن را جهت همه ی برنامه ها در نظر گرفت . ( البته اگر ایرادی در ست کردن پرمیشن خواندن وجود نداشته باشد )

 

در مجموع :

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

 

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

نویسنده : E2MA3N

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



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