آموزشچگونه

آموزش خط فرمان: قسمت بیست و سوم، مجوزهای دسترسی (Permissions)

Print Friendly, PDF & Email

سیستم‌عامل‌ها در یونیکس با انواع سنتی MS-DOS تفاوت دارند. از این نظر که آن‌ها نه‌تنها چندوظیفه‌ای هستند بلکه چندکاربری نبز هستند. یعنی اینکه بیش از یک نفر می‌تواند به صورت همزمان از یک کامپیوتر استفاده کند. در حالی که یک کامپیوتر معمولاً یک کیبورد و مانیتور دارد ولی باز هم قابلیت استفاده توسط چند کاربر را داراست. برای مثال اگر یک کامپیوتر به شبکه یا اینترنت متصل باشد، کاربران ریموت می‌توانند اپلیکیشن‌های گرافیکی را اجرا رده و رابط گرافیکی را در صفحه نمایش خود مشاهده کنند و با آن  کار خود را انجام دهند. سیستم Windows X نیز این ویژگی را به عنوان بخشی از طراحی اولیه خود پشتیبانی می‌کند.

قابلیت چند کاربری لینوکس یک نوآوری جدید نیست بلکه بخشی است که به طور عمیق در طراحی سیستم‌عامل گنجانده شده است. اگر به محیطی که لینوکس در آن ایجاد شده فکر کنیم، این موضوع ملموس‌تر خواهد بود. سال‌ها قبل، پیش از آنکه کامپیوترهای شخصی وجود داشته باشند، کامپیوترهای بزرگ و مرکزی و گران‌قیمت موجود بود. یک سیستم معمولی کامپیوتر یک دانشگاه را فرض کنید. این سیستم شامل یک کامپیوتر مرکزی بود که در داخل ساختمان قرار داشت و ترمینال‌هایی وجود داشت که هر یک به این سیستم مرکزی متصل بودند و از طریق ریموت از این سیستم بهره‌برداری می‌کردند. در این حالت بود که کامپیوتر قابلیت استفاده چندین کاربر را به صورت همزمان فراهم می‌کرد.

برای اینکه این دسترسی‌ها عملیاتی شود بایستی متدی برای حفاظت از هر کاربر و همچنین حفاظت آن‌ها از یکدیگر به‌وجود می‌آمد. چون که انجام ارهایی که هر شخص مجوز انجام آن را نداشت موجب تخریب کاربر و حتی کامپیوتر می‌شد.

مالکیت، گروه اعضا و دسترسی همگانی در لینوکس

اگر خاطرتان باشد در آموزش‌های قبلی وقتی سیستم را کاوش می‌کردیم ممکن بود زمان مشاهده فایلی مشابه /etc/shadow با مشکل زیر مواجه شویم:

علت به وجود آمدن این خطا این است که کاربران عادی دسترسی لازم برای خواندن این فایل را ندارند. وقتی که یک کاربر مالکیت یک فایل یا پوشه را دارد، بر روی دسترسی آن کنترل دارد. کاربران همچنین می‌توانند به نوبه خود عضو گروهی که شامل یک یا چند کاربر دیگر است نیز باشند که از ظریق مالکان این گروه دسترسی به فایل‌ها و پوشه‌های آن ایجاد شده است. علاوه بر این به منظور دسترسی یه یک گروه، مالک ممکن است برخی حقوق دسترسی را برای همگان آزاد بگذارند که در یونیکس به این منظور از واژه world (دنیا) استفاده می‌شود. برای اینکه به هویت خود در لینوکس پی ببرید دستور id را در خط فرمان به کار برید:

در خروجی مشاهده می‌شود که زمانی که حساب‌های کاربری ایجاد می‌شود، به کاربران یک شماره با نام user ID (uid) به معنی شناسه کاربر، اختصاص می‌یابد. در ادامه برای راحتی کار کاربران یک نام کاربری به این شناسه تخصیص داده می‌شود. کاربر همچنین یک شناسه گروهی Primary Group ID یا همان gid را به خود اختصاص می‌دهد که ممکن است به گروه‌های دیگر تعلق داشته باشد. مثالی که می‌بینید مربوط به یک سیستم فدورا است. این خروجی ممکن است در سیستم‌های دیگر مانند اوبونتو متفاوت باشد.

این اطلاعات از تعدادی فایل‌های متنی سرچشمه می‌گیرد. اطلاعات حساب‌های کاربری در فایلی با نام /etc/passwd و گروه‌های کاربری در فایلی با نام /etc/group تعریف می‌شود. هنگامی که کاربران و گروه‌ها ایجاد می‌شوند این فایل‌ها نیز ویرایش شده و در موازات آن فایل /etc/shadow که حاوی اطلاعات پسورد کاربر است نیز تغییر پیدا می‌کند. در هر حساب کاربری، فایل /etc/passwd موجب تغییر این موارد می‌شود: نام کاربری، uid و gid و نام واقعی حساب پوشه خانگی کاربر (Home Directory).

اگر محتویات /etc/passwd و /etc/group را بررسی کنید، متوجه خواهید شد که در کنار حساب‌های کاربری عادی حساب‌هایی برای کاربران ارشد (Superuser) و دیگر کاربران سیستم وجود دارد.

در حالی که بسیاری از سیستم‌های یونیکسی کاربران عادی را به یک گروه عمومی مثل گروه users اختصاص می‌دهند، لینوکس‌های مدرن یک گروه یگانه و تک کاربره به نام کارب ایجاد کرده و به وی اختصاص می‌دهند. این کاربر باعث می‌شود که اختصاص برخی انواع دسترسی‌ها آسان‌تر شود.

دسترسی‌های خواندن، نوشتن و اجرا

حقوق دسترسی به فایل‌ها و پوشه‌ها را با عبارات دسترسی خواند (Read Access)، دسترسی نوشتن (Write Access) و دسترسی اجرا (Execution Access) تعریف می‌کنند. اگر به خروجی فرمان ls در مثال زیر توجه کنیم، می‌بینیم که این دسترسی‌ها چگونه پیاده‌سازی شده‌اند.

 به کاراکتر اول در خروجی بالا توجه کنید. آن را به چهار بخش تقسیم کنید. کاراکتر اول از سمت چپ نوع فایل را مشخص می‌کند. جدول انواع فایل در زیر، مقادیر مختلف آن را توضیح داده است. ۹ کاراکتر باقیمانده را مشخصه‌های file mode می‌نامند. این کاراکترها را از سمت چپ سه یه سه از هم جدا کنید. اولین بخش سه‌تایی دسترسی‌ها برای مالک فایل یا همان کاربر (File’s Owner) را مشخص می‌کند. بخش سه‌تایی دوم دسترسی‌ها برای مالک گروه (Group Owner) را مشخص می‌کند.

این دسترسی‌ها به ترتیب با کاراکترهای اختصاصی rwx تعریف می‌شوند که r به معنی دسترسی خواندن (Read)، w به معنی دسترسی نوشتن (Write) و x به معنی دسترسی اجرا (Execution) می‌باشد. اگر هر کدام از این دسترسی‌ها از کاربر (User) یا گروه (Group) و یا همگان (World) منع شده باشد به جای آن علامت دش (-) گذاشته می‌شود.

جداول زیر این دسترسی‌ها را به تفصیل بررسی کرده:

جدول انواع فایل
جدول مشخصه‌های مجوزه‌های دسترسی
جدول مثال‌های مشخصه‌های مجوزه‌های دسترسی

منبع: کتاب The Linux Command Line نوشته William E. Shotts

Related Articles

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Close