آبجی
23rd May 2010, 07:31 PM
درمقایسه با سیستم عامل ویندوز و سایر سیستمهای عامل دیگر، سیستمهای یونیکس و خانواده گنو/لینوکس در طراحی قوانین دسترسی به فایل از شکلی مستحکم تر و کاراتر بهره جسته اند. در این مقاله سعی می شود تا بطور خلاصه به بیان تفاوتها و نقاط قوت آن پرداخته شود.
● لینوکس: امنیت، امنیت، امنیت
امروزه در دنیایی متکی بر فناوری اطلاعات زندگی می کنیم که هر لحظه به خطر افتادن جریان اطلاعات منجر به بروز خسارت های تجاری جبران ناپذیری خواهد شد. امروزه همه به دنبال یک سکوی (Platform) امن تر برای اجرای برنامه های کاربردی و سرویس دهنده ها هستند. لینوکس حرف های زیادی برای گفتن در سمت امنیت دارد. بسیاری از قابلیت های امنیتی که در ویندوز وجود ندارند و یا فقط با اضافه کردن نرم افزارهای اضافی قابل دسترسی می باشند، بطور درونی و پیش گزیده در لینوکس پیاده سازی شده اند.
لینوکس از ابتدا برای محیط های شبکه ای و چند کاربره طراحی شده است و همین باعث رعایت مسایل امنیتی از ابتدا در آن شده است، درحالی که ویندوز اینگونه نبوده و درحال حاضر نیز از نظر امنیتی دارای نقاط ضعف فراوانی است. مثلاً یک برنامه ی مخرب با استفاده از همین ضعف های امنیتی می تواند کل سیستم عامل را نابود کند، ولی در صورتی که مورد مشابهی در لینوکس وجود داشته باشد، حداکثر به دایرکتوری خانگی کاربر اجرا کننده آسیب خواهد رسید، نه کل سیستم عامل.
اینطور نیست که لینوکس فاقد هرگونه اشکال امنیتی باشد، خیر! ولی باز بودن کد منبع آن باعث می شود تا بسیاری از اشکالات امنیتی پیش از ایجاد خسارت و در مراحل توسعه و برنامه نویسی برنامه برملا شده و رفع شوند.
در صورتی که اشکالی نیز در برنامه های منتشر شده یافت شود، بدلیل موجود بودن کد منبع سریعاً برطرف می گردد. در صورتی که در سیستم عامل ویندوز شما باید منتظر مایکروسافت بمانید و بمانید و بمانید. سیستم عامل ویندوز دارای اشکالات امنیتی بسیاری است که به راحتی هم کشف نمی شوند و هنگامی کشف می شوند که خسارات جبران ناپذیری در اثر حمله از طریق آن ضعف های امنیتی رخ دهد که امثال آنرا شاهد هستیم.
می توان ادعا کرد که تقریباً هیچ ویروسی برای لینوکس وجود ندارد و این درحالی است که سالیانه بیش از ۱۰۰۰ ویروس و کرم مختلف برای سیستم عامل ویندوز ایجاد می شود. این بخاطر عدم گسترده بودن لینوکس نیست، (حدود ۷۰ درصد از سایت های وب در جهان بر روی سیستم عامل لینوکس و سرویس دهنده ی وب آپاچی درحال اجرا هستند) بلکه بدلیل وجود حفره های امنیتی متعدد ویندوز وسیاست انحصارگرایی مایکروسافت است. یعنی چه؟ مایکروسافت طوری رفتار و ---------- گذاری کرده است که مشتریان خود را تنها به محصولات خودش عادت دهد.
بسیاری از کاربران ویندوز از اینترنت اکسپلورر و آتلوک برای مرور وب و پست الکترونیک استفاده می کنند. من به عنوان یک ویروس نویس، می دانم که اگر ویروسی را برای کاربران ویندوز بنویسم، بر روی کامپیوترهای ۹۰ درصد آنها اثر خواهد کرد. چون اکثراً از IE و Outlook استفاده می کنند. ولی در لینوکس چطور؟ در لینوکس شما طیف وسیعی از انتخاب و عدم اجبار دارید. من از مرورگر موزیلا استفاده می کنم.
دوستی دارم که Konqueror را ترجیح می دهد. دیگری از Opera استفاده می کند. من از Kmail استفاده می کنم. دوستم از Evolution، دیگری از Pine و بعدی از Mutt و برادرم هم از Mozilla Mail. من فقط می توانم برای یکی از اینها ویروس بنویسم چون روی بقیه کار نخواهد کرد و عملاً میزان اثر آن اندک خواهد بود. ضمناً هیچیک از ویروس هایی که برای ویندوز نوشته شده اند، بر روی لینوکس کار نمی کنند.
اولین و برجسته ترین تفاوت در اینجاست که سیستمهای مبتنی بر یونیکس به معنای کاملاً واقعی سیستمهایی چند کاربره هستند و برای هرفایل به تنهایی یا یک دایرکتوری میتوان سطوح دسترسی کاربران و گروه های کاربری تعریف کرد و هر کاربر بصورت پیش فرض دارای یک محدوده امن اطلاعاتی از فایلهای شخصی خانگی است.
چیزی که در اینجا درباره ی کاربران و گروه های کاربری لازم به ذکر است این است که هر کاربر در سیستم یونیکس یک دایرکتوری شخصی به نام home خواهد داشت که کلیه اختیارات دسترسی فایل در آن برای او مجاز بوده و می تواند در آن به ایجاد و حذف فایل یا عملیات دیگر بپردازد و هیچیک از کاربران یا گروههای دیگر بجز کاربر ریشه root در حالت عادی و بدون اجازه او نخواهند توانست به اطلاعات او دسترسی یابند.
(نکته مهم امنیتی)
در سیستمهای مبتنی بر یونیکس مثل لینوکس هر کاربری که مالک یا ایجادکننده ی یک فایل یا دایرکتوری باشد خواهد توانست با تعین سطوح دسترسی فایل یا دایرکتوری مربوطه برای دیگر کاربران یا گروههای کاربری آنان را از امکان خواندن و ایجاد تغییر و یا اجرای فایل اجرایی محروم یا بهره مند سازد.
بدیهی است که مجوزهای تعریف شده برای یک گروه کاربری بر روی تمام اعضای آن گروه اعمال شده و هر کاربر عضو آن گروه از تمام مزایا یا محدودیتهای موصوف بهره مند خواهدشد.
▪ بطور کلی سه سطح دسترسی برای هر فایل یا دایرکتوری تعریف می شود که عبارتست از:
۱)( Read permission)( r) یا مجوز خواندن: مجوز خواندن محتوای یک فایل را به یک کاربر می دهد و برای دایرکتوریها امکان لیست کردن محتویات داخل دایرکتوری را برای کاربر فراهم می سازد.
۲) ( Write permission)( w) یا مجوز ایجاد تغییرات: امکان ایجاد تغییرات در محتوای فایلها را به کاربر اهدا می کند. برای دایرکتوریها این گرینه امکان ایجاد فایل جدید در دایرکتوری یا حذف فایلهای موجود در آن را برای کاربر مهیا می سازد حتی اگر این کاربر یا گروه کاربری مالک یا ایجادکننده ی اصلی فایل یا دایرکتوری نباشد.
۳) ( eXecute permission)( x) یا مجوز اجرا: این مجوز در مورد فایلهای اجرایی امکان اجرای فایل را به یک کاربر می دهد و در مورد یک دایرکتوری این گزینه امکان ورود به داخل دایرکتوری را به کاربر یا گروه خاص می دهد. توجه داشته باشید که این گزینه را با گزینه Read اشتباه نگیرید، چون صرفاً با داشتن مجوز execute و بدون داشتن مجوز read کاربر یا گروه می تواند وارد دایرکتوری خاصی شوند ولی امکان خواندن محتویات داخلی آن دایرکتوری بهیچ عنوان برایشان فراهم نخواهد بود.
همیشه ترکیبی از سطوح سه گانه مجوزهای فوق الذکر قابل استفاده است؛ برای مثال شما در صورت مالکیت یک فایل می توانید دسترسی به آنرا صرفاً برای شخص خود تعریف و سایر کاربران و گروهها را ازدیدن یا اجرا و ایجاد تغییر در آن محدود نمایید.
ـ نکته:
یک کاربر حتی می تواند یک فایل یا دایرکتوری را که مالک و ایجاد کننده ی اصلی آن خود اوست برای کاربران دیگر قابل دسترسی و برای خودش غیر قابل دسترسی تعریف کند که به این صورت حتی خودش از کلیه مزایای فایل مربوطه محروم خواهد شد و در آینده هم قادر نخواهد بود تا با ایجاد تغییر مجدداً به آن فایل یا دایرکتوری دسترسی پیدا کند. در اینجاست که مدیر سیستم یا کاربر ریشه root تنها کسی خواهد بود که بصورت پیش گزیده با داشتن کلیه ی مجوزهای لازم، شامل خواندن و نوشتن و اجرا، امکان تغییر مالکیت و سطوح دسترسی کاربران و گروهها را داشته و می تواند تغییرات لازم را در سیستم اعمال نماید.
ذکر این نکته ی بسیار مهم خالی از لطف نیست که حفظ و حراست از اطلاعات حیاتی سیستم مثل کلمه ی عبور کاربر ریشه یکی از مهمترین جنبه های امنیت سیستمهای مبتنی بر یونیکس می باشد.
▪ بیایید تا با ذکر یک مثال در مورد یک فایل و یک دایرکتوری به بررسی موضوع بپردازیم:
در این مثال فرض شده که در مسیر جاری یک فایل به نام a_file و یک دایرکتوری به نام a_directory وجود دارد و با اجرای فرمان ls –l در خط فرمان این اطلاعات بدست آمده است:
$ ls -l
total ۱
-rw-r----- ۱ mehrdad users ۰ Jul ۸ ۱۴:۱۱ a_file
drwxr-xr-- ۲ mohsen users ۱۰۲۴ Jul ۸ ۱۴:۱۱ a_directory/
نتایج فرمان ls –l را ازچپ به راست بررسی می کنیم:
▪ ستون اول فرمانls –l :
۱) ده کاراکتر اول نشان دهنده ی نوع فایل و سطوح دسترسی آن است و اولین کاراکتر که در مورد سطر اول ( - ) و در مورد سطر دوم ( d ) می باشد، نشان میدهد که مورد موجود در سطر اول یک فایل معمولی و مورد موجود در سطر دوم یک دایرکتوری است.
البته انواع دیگری از فایل وجود دارد که با کاراکتری غیر از ( - ) مشخص می گردند و برای مطالعه ی بیشتر می توانید به مراجع موجود مراجعه کنید. نه کاراکتر بعدی نشان دهنده ی سطوح دسترسی تعریف شده می باشند و به ترتیب هر سه کاراکتر از چپ به راست شامل سطوح دسترسی متعلق به مالک، owner، و سطوح دسترسی گروهها، groups، و سطوح دسترسی برای سایرین،others، خواهد بود.
به عنوان نمونه سه کاراکتر مربوط به owner و groups و others در مورد یک فایل موجود در مثال بالابصورت زیر تعریف شده است:
برای مالک: owner = (r w -) ، یعنی اینکه امکان خواندن r و نوشتن w و اجراکردنx وجود دارد.
برای گروهها: group = (r - -) یعنی اینکه امکان خواندن فایل برای کاربران عضو کلیه گروههای کاربری موجود وجود دارد ولی هیچ کابری در گروههای موجود نمی تواند فایل را تغییر داده (یا حذف کند) و یا در صورت اجرایی بودن فایل آنرا اجرا نماید.
برای دیگران: others = ( - - - ) سه کاراکتر dash به این معناست که سایر کاربران یعنی آنهایی که در هیچ گروه کاربری موجود تعریف نشده اند هیچیک از امکانات دسترسی موجود را نخواهند داشت. (نکته امنیتی مهم)
▪ ستون دوم در فرمان ls -l:
شامل یک شماره ی لینک می باشد و از این شماره برای تشخیص لینک به یک فایل موجود در چند نقطه سیستم استفاده می شود. در مورد دایرکتوری ها این شماره معانی زیاد دیگری دارد که در اینجا مجال پرداختن به همه آنها نخواهد بود.
▪ ستون سوم در فرمان ls -l:
این ستون نمایش دهنده ی نام مالک فایل و نام گروه مالک آن می باشد.
▪ ستون چهارم در فرمان ls -l:
این ستون نمایش دهنده ی اندازه و حجم فایل یا دایرکتوری و تاریخ و ساعت آخرین تغییرات اعمال شده بر آن و در نهایت ستون پنجم نتایج فرمان ls -l شامل نام فایل یا دایرکتوری می باشد.
ـ نکته:
بدیهی است که (rwx) به معنای تعریف حداکثر سطح دسترسی برای کاربر یا گروههای کاربری است و ( - - - ) به معنای عدم امکان دسترسی به فایل یا دایرکتوری می*باشد.
● چند نکته ی مهم در مورد یونیکس و لینوکس:
اسامی فایلها در یونیکس و لینوکس می توانند شامل هر نوع کاراکتری حتی کاراکترهای ascii بجز صفر و / باشند. همانطوریکه می دانید در سیستم های مبتنی بر یونیکس بر خلاف ویندوز هر فایل حتماً نیاز به داشتن پسوند سه حرفی مشخص کننده نوع فایل ندارد و قابلیتها و نوع فایلهای بدون پسوند یا extension کاملاً وابسته به محتویات فایل است و نه به پسوند آن. بدیهی است که کاراکتر ( . ) جداکننده ی نام فایل و پسوند آن در ویندوز در محیط یونیکس و گنو/لینوکس یک کاراکتر از کاراکترهای تشکیل دهنده ی نام فایل محسوب می گردد. و نکته ظریف اینجاست که در سیستم های مبتنی بر یونیکس کلیه ی فایلها و دایرکتوریهایی که با کاراکتر نقطه یا دات ( . ) آغاز گردند فایلها یا دایرکتوریهای پنهان hidden محسوب می گردند.
توجه داشته باشید که چون برخی برنامه های گرافیکی مثلاً برنامه openoffice کماکان از پسوند نام فایل برای ذخیره سازی و تشخیص نوع فایل بهره می برند گاهی لازم است پسوند فایلهای ایجاد شده توسط این برنامه های کاربردی حفظ گردد تا برنامه موصوف در شناسایی نوع فایل دچار مشکل نشود.
● نتیجه گیری کلی
شما حتی بایک نگاه گذرا به مقاله حاضر در مورد سیستم تعین سطوح امنیتی فایل در یونیکس و لینوکس و مقایسه آن با سیستم عامل ویندوز در خواهیدیافت که وقتی صحبت از امنیت سیستم های لینوکس به میان می آید منظور چیست؟ چرا که در یک سیستم مبتنی بر یونیکس حتی برای یک فایل به تنهایی امکان تعیین سطوح دسترسی و امنیتی وجود دارد ولی در سیستم عامل ویندوز حداکثر امکان موجود تعیین این سطوح دسترسی در سیستم فایل ntfs فقط برای دایرکتوریها (و نه برای تک تک فایلها) می باشد.
● لینوکس: امنیت، امنیت، امنیت
امروزه در دنیایی متکی بر فناوری اطلاعات زندگی می کنیم که هر لحظه به خطر افتادن جریان اطلاعات منجر به بروز خسارت های تجاری جبران ناپذیری خواهد شد. امروزه همه به دنبال یک سکوی (Platform) امن تر برای اجرای برنامه های کاربردی و سرویس دهنده ها هستند. لینوکس حرف های زیادی برای گفتن در سمت امنیت دارد. بسیاری از قابلیت های امنیتی که در ویندوز وجود ندارند و یا فقط با اضافه کردن نرم افزارهای اضافی قابل دسترسی می باشند، بطور درونی و پیش گزیده در لینوکس پیاده سازی شده اند.
لینوکس از ابتدا برای محیط های شبکه ای و چند کاربره طراحی شده است و همین باعث رعایت مسایل امنیتی از ابتدا در آن شده است، درحالی که ویندوز اینگونه نبوده و درحال حاضر نیز از نظر امنیتی دارای نقاط ضعف فراوانی است. مثلاً یک برنامه ی مخرب با استفاده از همین ضعف های امنیتی می تواند کل سیستم عامل را نابود کند، ولی در صورتی که مورد مشابهی در لینوکس وجود داشته باشد، حداکثر به دایرکتوری خانگی کاربر اجرا کننده آسیب خواهد رسید، نه کل سیستم عامل.
اینطور نیست که لینوکس فاقد هرگونه اشکال امنیتی باشد، خیر! ولی باز بودن کد منبع آن باعث می شود تا بسیاری از اشکالات امنیتی پیش از ایجاد خسارت و در مراحل توسعه و برنامه نویسی برنامه برملا شده و رفع شوند.
در صورتی که اشکالی نیز در برنامه های منتشر شده یافت شود، بدلیل موجود بودن کد منبع سریعاً برطرف می گردد. در صورتی که در سیستم عامل ویندوز شما باید منتظر مایکروسافت بمانید و بمانید و بمانید. سیستم عامل ویندوز دارای اشکالات امنیتی بسیاری است که به راحتی هم کشف نمی شوند و هنگامی کشف می شوند که خسارات جبران ناپذیری در اثر حمله از طریق آن ضعف های امنیتی رخ دهد که امثال آنرا شاهد هستیم.
می توان ادعا کرد که تقریباً هیچ ویروسی برای لینوکس وجود ندارد و این درحالی است که سالیانه بیش از ۱۰۰۰ ویروس و کرم مختلف برای سیستم عامل ویندوز ایجاد می شود. این بخاطر عدم گسترده بودن لینوکس نیست، (حدود ۷۰ درصد از سایت های وب در جهان بر روی سیستم عامل لینوکس و سرویس دهنده ی وب آپاچی درحال اجرا هستند) بلکه بدلیل وجود حفره های امنیتی متعدد ویندوز وسیاست انحصارگرایی مایکروسافت است. یعنی چه؟ مایکروسافت طوری رفتار و ---------- گذاری کرده است که مشتریان خود را تنها به محصولات خودش عادت دهد.
بسیاری از کاربران ویندوز از اینترنت اکسپلورر و آتلوک برای مرور وب و پست الکترونیک استفاده می کنند. من به عنوان یک ویروس نویس، می دانم که اگر ویروسی را برای کاربران ویندوز بنویسم، بر روی کامپیوترهای ۹۰ درصد آنها اثر خواهد کرد. چون اکثراً از IE و Outlook استفاده می کنند. ولی در لینوکس چطور؟ در لینوکس شما طیف وسیعی از انتخاب و عدم اجبار دارید. من از مرورگر موزیلا استفاده می کنم.
دوستی دارم که Konqueror را ترجیح می دهد. دیگری از Opera استفاده می کند. من از Kmail استفاده می کنم. دوستم از Evolution، دیگری از Pine و بعدی از Mutt و برادرم هم از Mozilla Mail. من فقط می توانم برای یکی از اینها ویروس بنویسم چون روی بقیه کار نخواهد کرد و عملاً میزان اثر آن اندک خواهد بود. ضمناً هیچیک از ویروس هایی که برای ویندوز نوشته شده اند، بر روی لینوکس کار نمی کنند.
اولین و برجسته ترین تفاوت در اینجاست که سیستمهای مبتنی بر یونیکس به معنای کاملاً واقعی سیستمهایی چند کاربره هستند و برای هرفایل به تنهایی یا یک دایرکتوری میتوان سطوح دسترسی کاربران و گروه های کاربری تعریف کرد و هر کاربر بصورت پیش فرض دارای یک محدوده امن اطلاعاتی از فایلهای شخصی خانگی است.
چیزی که در اینجا درباره ی کاربران و گروه های کاربری لازم به ذکر است این است که هر کاربر در سیستم یونیکس یک دایرکتوری شخصی به نام home خواهد داشت که کلیه اختیارات دسترسی فایل در آن برای او مجاز بوده و می تواند در آن به ایجاد و حذف فایل یا عملیات دیگر بپردازد و هیچیک از کاربران یا گروههای دیگر بجز کاربر ریشه root در حالت عادی و بدون اجازه او نخواهند توانست به اطلاعات او دسترسی یابند.
(نکته مهم امنیتی)
در سیستمهای مبتنی بر یونیکس مثل لینوکس هر کاربری که مالک یا ایجادکننده ی یک فایل یا دایرکتوری باشد خواهد توانست با تعین سطوح دسترسی فایل یا دایرکتوری مربوطه برای دیگر کاربران یا گروههای کاربری آنان را از امکان خواندن و ایجاد تغییر و یا اجرای فایل اجرایی محروم یا بهره مند سازد.
بدیهی است که مجوزهای تعریف شده برای یک گروه کاربری بر روی تمام اعضای آن گروه اعمال شده و هر کاربر عضو آن گروه از تمام مزایا یا محدودیتهای موصوف بهره مند خواهدشد.
▪ بطور کلی سه سطح دسترسی برای هر فایل یا دایرکتوری تعریف می شود که عبارتست از:
۱)( Read permission)( r) یا مجوز خواندن: مجوز خواندن محتوای یک فایل را به یک کاربر می دهد و برای دایرکتوریها امکان لیست کردن محتویات داخل دایرکتوری را برای کاربر فراهم می سازد.
۲) ( Write permission)( w) یا مجوز ایجاد تغییرات: امکان ایجاد تغییرات در محتوای فایلها را به کاربر اهدا می کند. برای دایرکتوریها این گرینه امکان ایجاد فایل جدید در دایرکتوری یا حذف فایلهای موجود در آن را برای کاربر مهیا می سازد حتی اگر این کاربر یا گروه کاربری مالک یا ایجادکننده ی اصلی فایل یا دایرکتوری نباشد.
۳) ( eXecute permission)( x) یا مجوز اجرا: این مجوز در مورد فایلهای اجرایی امکان اجرای فایل را به یک کاربر می دهد و در مورد یک دایرکتوری این گزینه امکان ورود به داخل دایرکتوری را به کاربر یا گروه خاص می دهد. توجه داشته باشید که این گزینه را با گزینه Read اشتباه نگیرید، چون صرفاً با داشتن مجوز execute و بدون داشتن مجوز read کاربر یا گروه می تواند وارد دایرکتوری خاصی شوند ولی امکان خواندن محتویات داخلی آن دایرکتوری بهیچ عنوان برایشان فراهم نخواهد بود.
همیشه ترکیبی از سطوح سه گانه مجوزهای فوق الذکر قابل استفاده است؛ برای مثال شما در صورت مالکیت یک فایل می توانید دسترسی به آنرا صرفاً برای شخص خود تعریف و سایر کاربران و گروهها را ازدیدن یا اجرا و ایجاد تغییر در آن محدود نمایید.
ـ نکته:
یک کاربر حتی می تواند یک فایل یا دایرکتوری را که مالک و ایجاد کننده ی اصلی آن خود اوست برای کاربران دیگر قابل دسترسی و برای خودش غیر قابل دسترسی تعریف کند که به این صورت حتی خودش از کلیه مزایای فایل مربوطه محروم خواهد شد و در آینده هم قادر نخواهد بود تا با ایجاد تغییر مجدداً به آن فایل یا دایرکتوری دسترسی پیدا کند. در اینجاست که مدیر سیستم یا کاربر ریشه root تنها کسی خواهد بود که بصورت پیش گزیده با داشتن کلیه ی مجوزهای لازم، شامل خواندن و نوشتن و اجرا، امکان تغییر مالکیت و سطوح دسترسی کاربران و گروهها را داشته و می تواند تغییرات لازم را در سیستم اعمال نماید.
ذکر این نکته ی بسیار مهم خالی از لطف نیست که حفظ و حراست از اطلاعات حیاتی سیستم مثل کلمه ی عبور کاربر ریشه یکی از مهمترین جنبه های امنیت سیستمهای مبتنی بر یونیکس می باشد.
▪ بیایید تا با ذکر یک مثال در مورد یک فایل و یک دایرکتوری به بررسی موضوع بپردازیم:
در این مثال فرض شده که در مسیر جاری یک فایل به نام a_file و یک دایرکتوری به نام a_directory وجود دارد و با اجرای فرمان ls –l در خط فرمان این اطلاعات بدست آمده است:
$ ls -l
total ۱
-rw-r----- ۱ mehrdad users ۰ Jul ۸ ۱۴:۱۱ a_file
drwxr-xr-- ۲ mohsen users ۱۰۲۴ Jul ۸ ۱۴:۱۱ a_directory/
نتایج فرمان ls –l را ازچپ به راست بررسی می کنیم:
▪ ستون اول فرمانls –l :
۱) ده کاراکتر اول نشان دهنده ی نوع فایل و سطوح دسترسی آن است و اولین کاراکتر که در مورد سطر اول ( - ) و در مورد سطر دوم ( d ) می باشد، نشان میدهد که مورد موجود در سطر اول یک فایل معمولی و مورد موجود در سطر دوم یک دایرکتوری است.
البته انواع دیگری از فایل وجود دارد که با کاراکتری غیر از ( - ) مشخص می گردند و برای مطالعه ی بیشتر می توانید به مراجع موجود مراجعه کنید. نه کاراکتر بعدی نشان دهنده ی سطوح دسترسی تعریف شده می باشند و به ترتیب هر سه کاراکتر از چپ به راست شامل سطوح دسترسی متعلق به مالک، owner، و سطوح دسترسی گروهها، groups، و سطوح دسترسی برای سایرین،others، خواهد بود.
به عنوان نمونه سه کاراکتر مربوط به owner و groups و others در مورد یک فایل موجود در مثال بالابصورت زیر تعریف شده است:
برای مالک: owner = (r w -) ، یعنی اینکه امکان خواندن r و نوشتن w و اجراکردنx وجود دارد.
برای گروهها: group = (r - -) یعنی اینکه امکان خواندن فایل برای کاربران عضو کلیه گروههای کاربری موجود وجود دارد ولی هیچ کابری در گروههای موجود نمی تواند فایل را تغییر داده (یا حذف کند) و یا در صورت اجرایی بودن فایل آنرا اجرا نماید.
برای دیگران: others = ( - - - ) سه کاراکتر dash به این معناست که سایر کاربران یعنی آنهایی که در هیچ گروه کاربری موجود تعریف نشده اند هیچیک از امکانات دسترسی موجود را نخواهند داشت. (نکته امنیتی مهم)
▪ ستون دوم در فرمان ls -l:
شامل یک شماره ی لینک می باشد و از این شماره برای تشخیص لینک به یک فایل موجود در چند نقطه سیستم استفاده می شود. در مورد دایرکتوری ها این شماره معانی زیاد دیگری دارد که در اینجا مجال پرداختن به همه آنها نخواهد بود.
▪ ستون سوم در فرمان ls -l:
این ستون نمایش دهنده ی نام مالک فایل و نام گروه مالک آن می باشد.
▪ ستون چهارم در فرمان ls -l:
این ستون نمایش دهنده ی اندازه و حجم فایل یا دایرکتوری و تاریخ و ساعت آخرین تغییرات اعمال شده بر آن و در نهایت ستون پنجم نتایج فرمان ls -l شامل نام فایل یا دایرکتوری می باشد.
ـ نکته:
بدیهی است که (rwx) به معنای تعریف حداکثر سطح دسترسی برای کاربر یا گروههای کاربری است و ( - - - ) به معنای عدم امکان دسترسی به فایل یا دایرکتوری می*باشد.
● چند نکته ی مهم در مورد یونیکس و لینوکس:
اسامی فایلها در یونیکس و لینوکس می توانند شامل هر نوع کاراکتری حتی کاراکترهای ascii بجز صفر و / باشند. همانطوریکه می دانید در سیستم های مبتنی بر یونیکس بر خلاف ویندوز هر فایل حتماً نیاز به داشتن پسوند سه حرفی مشخص کننده نوع فایل ندارد و قابلیتها و نوع فایلهای بدون پسوند یا extension کاملاً وابسته به محتویات فایل است و نه به پسوند آن. بدیهی است که کاراکتر ( . ) جداکننده ی نام فایل و پسوند آن در ویندوز در محیط یونیکس و گنو/لینوکس یک کاراکتر از کاراکترهای تشکیل دهنده ی نام فایل محسوب می گردد. و نکته ظریف اینجاست که در سیستم های مبتنی بر یونیکس کلیه ی فایلها و دایرکتوریهایی که با کاراکتر نقطه یا دات ( . ) آغاز گردند فایلها یا دایرکتوریهای پنهان hidden محسوب می گردند.
توجه داشته باشید که چون برخی برنامه های گرافیکی مثلاً برنامه openoffice کماکان از پسوند نام فایل برای ذخیره سازی و تشخیص نوع فایل بهره می برند گاهی لازم است پسوند فایلهای ایجاد شده توسط این برنامه های کاربردی حفظ گردد تا برنامه موصوف در شناسایی نوع فایل دچار مشکل نشود.
● نتیجه گیری کلی
شما حتی بایک نگاه گذرا به مقاله حاضر در مورد سیستم تعین سطوح امنیتی فایل در یونیکس و لینوکس و مقایسه آن با سیستم عامل ویندوز در خواهیدیافت که وقتی صحبت از امنیت سیستم های لینوکس به میان می آید منظور چیست؟ چرا که در یک سیستم مبتنی بر یونیکس حتی برای یک فایل به تنهایی امکان تعیین سطوح دسترسی و امنیتی وجود دارد ولی در سیستم عامل ویندوز حداکثر امکان موجود تعیین این سطوح دسترسی در سیستم فایل ntfs فقط برای دایرکتوریها (و نه برای تک تک فایلها) می باشد.