دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. مدهای دسترسی و سطوح دسترسی فایل در یونیکس (UNIX) را در این بخش از آموزش مورد بررسی قرار خواهیم داد. این بخش در دو جلسه تنظیم شده است. با ادامه ی آموزش یونیکس همراه باشید.
در این بخش، در مورد جزئیات مدهای دسترسی و سطوح دسترسی فایل در یونیکس (UNIX) به تفصیل صحبت خواهیم کرد. مالکیت فایل (File ownership) یکی از مؤلفه های مهم یونیکس است که روشی مطمئن برای ذخیره سازی فایل ها را فراهم می کند. هر فایل در یونیکس ویژگی های زیر را دارد.
سطوح دسترسی مالک (Owner permissions) – سطوح دسترسی مالک مشخص می کند که صاحب فایل می تواند چه کارهایی را روی فایل انجام دهد.
سطوح دسترسی گروه (Group permissions) – سطوح دسترسی گروه مشخص می كنند، كاربری كه عضو گروهی است كه یك فایل به آن تعلق دارد چه فعالیت هایی را بر روی فایل، می تواند انجام دهد.
سطوح دسترسی دیگران (world) – سطوح دسترسی برای دیگران نشان می دهد که کاربران دیگر چه کارهایی می توانند روی فایل انجام دهند.
در حین این که از دستور ls -l استفاده می کند ، اطلاعات مختلف مربوط به سطوح دسترسی فایل را به شرح زیر نمایش می دهد.
1 2 3 | $ls -l /home/amrood -rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir |
در این جا ، ستون اول مدهای دسترسی مختلف ، یعنی سطوح دسترسی مربوط به یک فایل یا یک دایرکتوری را نشان می دهد.
سطوح دسترسی به گروه های سه تایی تقسیم می شوند و هر موقعیتی در این گروه از یک سطح دسترسی خاص حکایت می کند ، به این ترتیب: (read (r), write (w), execute (x)
سه کاراکتر اول (۴-۲) سطوح دسترسی مربوط به مالک فایل را نشان می دهند. به عنوان مثال ، –rwxr-xr- نشان می دهد که مالک اجازه ی (read (r), write (w و (execute (x را دارد.
گروه دوم از سه کاراکتر (۷-۵) شامل سطوح دسترسی برای گروهی است که فایل به آن تعلق دارد. به عنوان مثال ، –rwxr-xr- نشان می دهد که گروه مجوز (read (r و (execute (x را دارد، اما اجازه نوشتن (write) ندارد.
آخرین گروه از سه کاراکتر (۱۰-۸) نشانگر کاراکتر هر کس دیگری است. به عنوان مثال ، –rwxr-xr- نشان می دهد که فقط سطوح دسترسی (read (r وجود دارد.
سطح های دسترسی فایل اولین خط دفاعی در امنیت سیستم یونیکس می باشند. بلوک های اساسی ساختمانی سطوح دسترسی یونیکس، سطح دسترسی خواندن ، نوشتن و پیاده سازی آن هاست که در زیر توضیح داده شده است.
امکان خواندن ، یعنی مشاهده محتوای فایل را می دهد.
امکان اصلاح یا حذف محتوای فایل را اعطا می کند.
کاربر دارای سطوح دسترسی پیاده سازی، می تواند فایلی را به عنوان برنامه اجرا کند.
مدهای دسترسی دایرکتوری به همان روش، مانند هر فایل دیگر، فهرست و سازماندهی می شوند. چند تفاوت وجود دارد که لازم به ذکر می باشد.
دسترسی به یک دایرکتوری به این معنی است که کاربر می تواند مطالب را بخواند. کاربر می تواند filename های موجود در دایرکتوری را مشاهده کند.
دسترسی بدان معنی است که کاربر می تواند فایل ها را از دایرکتوری اضافه یا حذف کند.
اجرای دایرکتوری واقعاً منطقی نیست.
برای اجرای ls یا دستور cd ، کاربر باید دسترسی به دایرکتوری bin را داشته باشد.
مدهای دسترسی و سطوح دسترسی فایل در یونیکس (UNIX) را با مبحث تغییر سطوح دسترسی ادامه می دهیم.
برای تغییر فایل یا سطوح دسترسی دایرکتوری ، از دستور chmod (تغییر حالت) استفاده می کنید. دو روش برای استفاده از chmod وجود دارد. حالت نمادین و حالت مطلق (symbolic mode و absolute mode).
آسان ترین راه برای مبتدیان برای تغییر سطوح دسترسی فایل یا دایرکتوری ، استفاده از حالت نمادین (Symbolic) است. با سطوح دسترسی Symbolic می توانید مجموعه جدول مورد نظر خود را با استفاده از عملگرها در جدول زیر اضافه ، حذف یا مشخص کنید.
ردیف | عملگر Chmod و شرح |
---|---|
۱ | + سطوح دسترسی تعیین شده را به یک فایل یا دایرکتوری اضافه می کند.
|
۲ | – سطوح دسترسی (های) تعیین شده را از یک فایل یا دایرکتوری حذف می کند.
|
۳ | = سطوح دسترسی (های) تعیین شده را تنظیم می کند. |
در این جا مثالی با استفاده از testfile آورده شده است. اجرای ls-1 روی testl نشان می دهد که سطوح دسترسی فایل به شرح زیر است.
1 2 | $ls -l testfile -rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile |
سپس دستور chmod هر مثال، از جدول قبل روی testfile اجرا می شود و به دنبال آن ls –l است ، بنابراین می توانید تغییرات سطوح دسترسی را ببینید.
1 2 3 4 5 6 7 8 9 | $chmod o+wx testfile $ls -l testfile -rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile $chmod u-x testfile $ls -l testfile -rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile $chmod g = rx testfile $ls -l testfile -rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile |
در این جا چگونه می توانید این دستورات را در یک خط واحد ترکیب کنید. به روش نوشتن کد توجه نمایید.
1 2 3 | $chmod o+wx,u-x,g = rx testfile $ls -l testfile -rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile |
راه دوم برای تغییر سطوح دسترسی با دستور chmod ، استفاده از یک عدد یا شماره ، برای مشخص کردن هر مجموعه سطوح دسترسی مربوط به فایل است.
همان طور که در جدول زیر نشان داده شده است ، به هر سطح دسترسی یک مقدار اختصاص داده می شود ، و در کل هر مجموعه از سطوح دسترسی، شماره یا عددی را برای آن مجموعه ارائه می دهد.
شماره | Octal نمایش سطوح دسترسی اکتال (Octal) | Ref |
---|---|---|
۰ | بدون سطح دسترسی | — |
۱ | سطح دسترسی پیاده سازی و اجرا (Execute) | –x |
۲ | سطح دسترسی Write | -w- |
۳ | سطح دسترسی Write و Execute یا اجرا : ۲ (execute) 1 + (write) برابر یا ۳ | -wx |
۴ | سطح دسترسی Read | r– |
۵ | سطح دسترسی Execute و Read یا خواندن: ۱ (read)4 + (execute) برابر با ۵ | r-x |
۶ | سطح دسترسی Read و Write یا نوشتن : ۲ (read)4 + (Write ) برابر با ۶ | rw- |
۷ | تمام سطوح دسترسی All permissions: 4 (read) + 2 (write) + 1 (execute) = 7 | rwx |
در این جا مثالی با استفاده از testfile آورده شده است. اجرای ls-1 روی testl نشان می دهد که سطوح دسترسی فایل به شرح زیر می باشد.
1 2 | $ls -l testfile -rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile |
سپس هر دستور chmod از جدول قبل روی testfile اجرا می شود و به دنبال آن ls –l است ، بنابراین می توانید تغییرات سطوح دسترسی را ببینید.
1 2 3 4 5 6 7 8 9 | $ chmod 755 testfile $ls -l testfile -rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile $chmod 743 testfile $ls -l testfile -rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile $chmod 043 testfile $ls -l testfile ----r---wx 1 amrood users 1024 Nov 2 00:10 testfile |
ادامه ی مدهای دسترسی و سطوح دسترسی فایل در یونیکس (UNIX) را در جلسه ی آینده بررسی می کنیم.
متشکریم از این که با مبحث مدهای دسترسی و سطوح دسترسی فایل در یونیکس (UNIX) همراه بودید. در این بخش با تا حدودی با مدهای دسترسی و سطوح دسترسی فایل در یونیکس (UNIX) آشنا شدیم. در بخش بعدی نیز این مبحث را ادامه خواهیم داد و تغییر مالکیت ها را به همراه توضیحاتی راجع به ، سطح دسترسی فایل SUID و SGID خواهیم داشت. با جلسات آموزشی یونیکس و وب سایت آموزشی پی وی لرن همراه باشید.