دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. مدهای دسترسی و سطوح دسترسی فایل در یونیکس (UNIX) را در جلسه ی قبل آغاز نمودیم. در این بخش نیز این مبحث را با بخش های تغییر مالکین و گروه ها، سطح دسترسی فایل SUID و SGID در یونیکس و غیره ادامه می دهیم.
در حین ایجاد یک حساب کاربری در یونیکس ، یک شناسه مالک و یک شناسه گروه به هر کاربر اختصاص داده می شود. همه سطوح دسترسی ذکر شده در بالا نیز براساس مالک و گروه ها اختصاص داده می شوند.
دو دستور برای تغییر مالک و گروه فایل ها موجود است.
chown – دستور chown مخفف “change owner” است و برای تغییر مالک یک فایل استفاده می شود.
chgrp – دستور chgrp مخفف “change group” است و برای تغییر گروه فایل استفاده می شود.
فرمان chown مالکیت یک فایل را تغییر می دهد. سینتکس پایه ای به شرح زیر است.
1 | $ chown user filelist |
سنجش کاربر می تواند یا نام کاربر روی سیستم یا id کاربر (uid) کاربر روی سیستم باشد.
مثال زیر به شما در درک این مفهوم کمک می کند.
1 2 | $ chown amrood testfile $ |
مالک فایل داده شده را به کاربر amrood تغییر می دهد.
توجه – super user, root، توانایی نامحدودی در تغییر مالکیت هر فایل را دارد اما کاربران عادی می توانند مالکیت فقط آن دسته از فایل های که مالک شان هستند، را تغییر دهند.
دستور chgrp مالکیت گروه یک فایل را تغییر می دهد. سینتکس پیایه ای به شرح زیر است.
1 | $ chgrp group filelist |
سنجش گروه می تواند نام یک گروه روی سیستم یا ID گروه (GID) یک گروه روی سیستم باشد.
مثال زیر به شما در درک این مفهوم کمک می کند.
1 2 | $ chgrp special testfile $ |
گروه فایل داده شده را به گروه special تغییر می دهد.
در ادامه سطح دسترسی فایل SUID و SGID در یونیکس را بیان می کنیم.
غالباً وقتی یک فرمان اجرا می شود ، برای انجام وظیفه خود باید با امتیازات ویژه اجرا شود.
به عنوان نمونه ، وقتی رمز عبور خود را با دستور passwd تغییر می دهید ، رمز عبور جدید شما در فایل etc/shadow/ ذخیره می شود.
به عنوان یک کاربر معمولی ، شما به دلایل امنیتی دسترسی به خواندن و نوشتن این فایل را ندارید ، اما هنگام تغییر رمز عبور خود ، باید مجوز نوشتن را برای این فایل داشته باشید. این بدان معنی است که برنامه passwd سطوح دسترسی اضافی به شما می دهد تا بتوانید در فایل etc/shadow/ بنویسید.
سطوح دسترسی اضافی از طریق مکانیسمی که به عنوان (Set User ID (SUID و Set Group ID (SGID) bit به برنامه ها داده می شود، شناخته شده است.
وقتی برنامه ای را اجرا می کنید که SUID bit را فعال کرده است ، سطوح دسترسی صاحب آن برنامه را به ارث می برید. برنامه هایی که SUID bit ندارند با سطح دسترسی کاربری که برنامه را شروع کرده است، پیاده سازی می شوند.
این مورد با SGID نیز وجود دارد. به طور معمول ، برنامه ها با سطوح دسترسی گروه شما اجرا می شوند ، اما درعوض ، گروه شما فقط برای این برنامه به مالک گروه برنامه تغییر می یابد.
در صورت وجود سطح دسترسی، بیت های SUID و SGID با حرف “s” ظاهر می شوند. بیت “SUID “s در بیت های سطح دسترسی واقع خواهد شد که در آن به طور معمول سطح دسترسی execute مالکان، ساکن می شود.
به عنوان مثال ، دستور زیر را داریم.
1 2 3 | $ ls -l /usr/bin/passwd -r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd* $ |
نشان می دهد که بیت SUID تنظیم شده است و دستور متعلق به root است. حرف بزرگ S در موقعیت execute به جای حروف کوچک نشان می دهد که execute bit تنظیم نشده است.
اگر بیت sticky در دایرکتوری فعال باشد ، فایل ها فقط در صورتی که یکی از کاربران زیر باشند، می توانند حذف شوند.
برای تنظیم بیت های SUID و SGID برای هر دایرکتوری دستور زیر را امتحان کنید.
1 2 3 4 | $ chmod ug+s dirname $ ls -l drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname $ |
سطوح دسترسی فایل در یونیکس (UNIX) را در این بخش به پایان می رسانیم.
سطوح دسترسی فایل در یونیکس (UNIX) را با مبحث تغییر مالکین و گروه ها و بررسی سطح دسترسی فایل SUID و SGID در یونیکس دنبال نمودیم. در جلسه ی آینده در مورد محیط یونیکس صحبت خواهیم کرد. با وب سایت آموزشی پی وی لرن همراه باشید.