مدیریت پرمیشن های فایل و دایرکتوری در لینوکس
در سیستم عامل گنو/لینوکس و سایر سیستم عامل های مبتنی بری یونیکس، هر فایل به یک یوزر -کاربر- اختصاص دارد که اصطلاحاً Owner (به معنی صاحب) آن فایل محسوب میگردد که این یوزر هم به یک گروه کاربری منتسب است که تمامی اعضای آن گروه از پرمیشن -مجوز- های یکسانی برخوردارند. دستوراتی که در جدول زیر مشاهده میکنید، برنامههایی هستند که امکان مدیریت پرمیشن فایلها در لینوکس را در اختیار کاربران قرار می دهند:
دستور | کاربرد |
chown | به منظور تغییر مالکیت «کاربر» یک فایل یا دایرکتوری مورد استفاده قرار میگیرد. |
chgrp | به منظور تغییر مالکیت «گروه» یک فایل یا دایرکتوری مورد استفاده قرار میگیرد. |
chmod | به منظور تغییر پرمیشن های اعمال شده روی یک فایل مورد استفاده قرار میگیرد. |
به طور کلی، هر فایل در سیستم عامل گنو/لینوکس دارای ۳ نوع پرمیشن است: write، read و execute که به ترتیب با حروف w، r و x شناخته میشوند. این پرمیشن ها ۳ گروه مالکیت را مدیریت میکنند: user که با حرف u شناخته میشود، group که با حرف g شناخته میشود و others که با حرف o شناخته میشود (اصطلاحاً به هر کسی که جزو userها و gourpها نباشد، others گفته میشود.) در نتیجه، پرمیشن ها و مالکیتها را میتوان در قالب جدول زیر خلاصه سازی نمود:
rwx | :rwx | :rwx |
o | :g | :u |
لازم به ذکر است که این نوع مدیریت پرمیشن ها کار نسبتاً دشواری است چرا که حفظ کردن پرمیشن ها به این شکل در معرض خطای بسیاری قرار دارد. لذا خالق لینوکس با الگوریتم بسیار ساده یی که به صورت عددی است، این امکان را در اختیار کاربران قرار داده تا به مدیریت پرمیشن ها بپردازند:
– عدد ۴ در صورتی که پرمیشن read مد نظر باشد،
– عدد ۲ در صورتی که پرمیشن write مد نظر باشد و
– عدد ۱ در صورتی که پرمیشن execute مد نظر کاربر باشد.
لذا عدد جبری ۷ حاکی از آن است که یک کاربر و گروه کاربری میتواند پرمیشن های write، read و execute را داشته باشد، عدد ۶ صرفاً مجوزهای read و write را صادر میکند و عدد ۵ هم مجوزهای read و execute. با این تفاسیر، با استفاده از دستور chmod میتوان پرمیشن های یک فایل را به سادگی دستخوش تغییر ساخت. برای روشن تر شدن کاربر دستور chmod، ابتدا یک فایل تحت عنوان temp روی دسکتاپ می سازیم:
sokanacademy@sokanacademy-inspiron-1545:~/Desktop$ touch temp
حال با استفاده از دستور زیر، پرمیشن های این فایل را چک می کنیم:
sokanacademy@sokanacademy-inspiron-1545:~/Desktop$ ls -l temp
به عنوان خروجی دستور فوق، داریم:
-rw-rw-r-- 1 sokanacademy sokanacademy 0 Aug 31 12:13 temp
در تفسیر خروجی فوق، بایستی بگوییم که کاربری که این فایل را ساخته و گروهی که این کاربر به آن تعلق دارد از پرمیشن های read و write برخوردارند اما Others یا اصطلاحا «الباقی دنیا» صرفا از پرمیشن read برخوردارند. حال با استفاده از دستور زیر، قصد داریم پرمیشن های این فایل را تغییر دهیم:
sokanacademy@sokanacademy-inspiron-1545:~/Desktop$ chmod 777 temp
به عنوان خروجی دستور فوق داریم:
-rwxrwxrwx 1 sokanacademy sokanacademy 0 Aug 31 12:13 temp
با اعمال کامند chmod 777 temp، دستور دادیم تا هر سه پرمیشن write، read و execute به group، user و others داده شود لذا می بینیم که پرمیشن rwx سه بار پشت سر هم تکرار شده است. از این پس، هر سه مالک می توانند هم به خواندن فایل، هم نوشتن روی آن و هم اجرای فایل بپردازند.