های بلاگ
  • های دیتا
  • وبلاگ
  • دسته بندی ها
    • جذاب ترین ها
      جذاب ترین مطالب
    • های تیوب
      انواع ویدئوهای آموزشی
    • های ‌کست
      انواع پادکست های جذاب
    • های کادمی
      آموزش ها و ترفندهای وب
  • درباره ما
  • ارتباط با ما
FA
EN
RU
زبان سایت:
FA
EN
RU
آمار نوشته
ندارد
دسته بندی
Ali Ghanimati
نویسنده
24 مهر 1404
تاریخ انتشار
87
بازدید
FA
EN
RU
زبان ها
آشنایی با دسترسی ها یا Permissions در لینوکس

آشنایی با دسترسی ها یا Permissions در لینوکس

سر تیتر های مقاله

آمار نوشته
  1. چگونه دسترسی ها را در لینوکس بررسی کنیم
  2. چطور دسترسی ها در لینوکس را بخوانیم
  3. گروه های دسترسی یا Permission Groups
  4. انواع دسترسی یا Permission Type
  5. دسترسی های مخصوص یا Special Permissions
  6. چگونه دسترسی ها را در لینوکس تغییر دهیم
  7. چگونه مالکیت یک فایل یا دایرکتوری را در لینوکس تغییر دهیم

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

برای جلوگیری از بروز این مشکل، سیستم عامل Unix قابلیت file permission را ارائه داده است. قابلیت اجازه دسترسی به فایل یا file permission، تعیین میکند که یک کاربر چه مقدار دسترسی برای اعمال تغییرات (یا حتی حذف کردن آن) در یک فایل یا دایرکتوری مشخص دارد.

در این آموزش، نحوه مشاهده و تغییر file permission ها در لینوکس (Linux) را توضیح میدهیم.

چگونه دسترسی ها را در لینوکس بررسی کنیم

قبل از ویرایش دسترسی های مربوط به یک فایل، نیاز است تا تنظیمات مربوط به دسترسی ها در لینوکس (Linux) را پیدا کنید. دو راه برای بررسی این دسترسی ها وجود دارد:
استفاده از رابط کاربری گرافیکی (graphical user interface یا GUI) و یا استفاده از رابط خط فرمان (command-line interface یا CLI)

بررسی دسترسی ها با استفاده از GUI
پیدا کردن جزئیات دسترسی های مربوط به یک فایل یا دایرکتوری با استفاده از GUI، بسیار ساده است.

  • ابتدا File Explorer در سیستم عامل لینوکس (Linux) خود را باز کرده و فایل یا دایرکتوری مورد نظر خود را پیدا کنید. سپس بر روی آن راست کلیک کرده و گزینه Properties را انتخاب کنید.
  • تب Permissions را انتخاب کنید.

در تب Permissions، اطلاعات مربوط به دسترسی های فایل، در سه بخش قابل تغییر است:
مالک یا Owner؛ کاربری که فایل یا دایرکتوری را ساخته است
گروه یا Group؛ گروهی که مالک در آن قرار دارد
دیگر کاربران یا Others؛ تمامی کاربران مربوط به سیستم

به ازای هر فایل، مالک آن فایل میتواند اجازه دسترسی به دیگر کاربران دهد یا حتی آنها را از دسترسی به فایل خود، محدود کند.

در مثال ما، مالک فایل text.txt دسترسی read and write به فایل دارد. یعنی میتواند هم فایل را باز کند و هم آن را ویرایش کند. در حالی که بقیه کاربران دسترسی read-only یا فقط خواندنی به فایل دارند. این به این معنی است کاربران میتوانند فایل را باز کنند و محتویات آن را مشاهده کنند اما نمی‌توانند آن را ویرایش کنند.

بررسی دسترسی ها با استفاده از دستور ls در محیط خط فرمان یا Command-Line
اگر قصد دارید از طریق Command-Line دسترسی ها را بررسی کنید، میتوانید با استفاده از دستور ls، اطلاعات مربوط به یک فایل یا دایرکتوری را مشاهده کنید. با اضافه کردن گزینه -l به این دستور، میتوانید اطلاعات یک فایل یا دایرکتوری را در یک خط مشاهده کنید.

ls -l [file_name]

برای مثال، میخواهیم اطلاعات مربوط به فایل text.txt را مشاهده کنیم:

ls -l test.txt

خروجی شامل این اطلاعات میباشد:

  • دسترسی یا Permission های فایل.
  • نام مالک یا سازنده فایل.
  • گروهی که مالک فایل در آن قرار دارد.
  • تاریخ ساخته شدن فایل.

چطور دسترسی ها در لینوکس را بخوانیم

دسترسی ها در لینوکس با استفاده از چندین نماد که تعیین میکنند کدام کاربران دسترسی برای خواندن، نوشتن یا اجرای یک فایل را دارند، نمایش داده میشوند. شناختن این نماد یا symbol ها، برای اینکه بتوانید دسترسی ها به منابع سیستم خود را مدیریت کنید، حیاتی است.

دسترسی یا Permisson ها در سه دسته مختلف قرار میگیرند:

  • مالک فایل یا دایرکتوری
  • گروه مربوط به فایل یا دایرکتوری
  • تمام کاربران سیستم

هر بخش دارای سه نوع دسترسی مختلف میباشد: خواندن یا read که با علامت r شناخته میشود، نوشتن یا write که با علامت w شناخته میشود و اجرا یا execute که با علامت x شناخته میشود. این دسترسی ها، مشخص میکنند که چه کارهایی میتوان با یک فایل یا دایرکتوری انجام داد.

به عنوان مثال، یک حالت از دسترسی مربوط به یک فایل به این صورت میباشد:

-rw-r--r--

  • اولین کاراکتر به معنای نوع فایل میباشد؛ یک فایل معمولی با علامت (-)، یک دایرکتوری با علامت (d) و symbolic link که به یک فایل یا دایرکتوری دیگر در سیستم اشاره میکند، با علامت (i) نمایش داده میشوند
  • سه کاراکتر بعدی به معنای سطح دسترسی میباشد که مالک آن فایل یا دایرکتوری دارد
  • سه کاراکتر بعد از آن، به سطح دسترسی گروهی که مالک به آن تعلق دارد، اشاره میکند
  • سه کاراکتر آخر نیز، به معنای سطح دسترسی دیگر کاربران سیستم به فایل یا دایرکتوری میباشد

گروه های دسترسی یا Permission Groups

سه گروه متمایز از کاربران برای ارائه دسترسی در لینوکس وجود دارد: مالک یا Owner، گروه یا Group و تمامی کاربران یا all users.

  • مالک یا Owner؛ مالک یک فایل یا دایرکتوری همان کاربری است که آن فایل را ساخته است. به صورت پیش‌فرض، مالک دسترسی کامل به فایل یا دایرکتوری خود دارد، که این دسترسی شامل خواندن یا read، نوشتن یا write و اجرا یا execute میشود.
  • گروه یا Group؛ هر فایل یا دایرکتوری در لینوکس به یک گروه در آن مربوط میباشد. کاربرانی که برای این گروه میباشند، دارای دسترسی هایی هستند که برای کاربران این گروه تعریف شده است. گروه ها کنترل دقیق‌تر به دسترسی فایل ها و دایرکتوری ها ارائه میکنند، به ویژه در محیط هایی که چندین کاربر وجود دارد.
  • تمامی کاربران یا all users؛ آخرین بخش از گروه های مربوط به دسترسی ها، ارائه دهنده سطح دسترسی برای تمامی کاربران سیستم، به جز مالک آن گروه است. این دسترسی ها به کاربر هایی داده میشود که بخش یا عضوی از گروهی که مربوط به فایل یا دایرکتوری میباشد، نمیباشند.

انواع دسترسی یا Permission Type

سه نوع دسترسی برای فایل ها و دایرکتوری ها در لینوکس وجود دارد؛ read، write و execute

  • خواندن یا read با نماد (r)؛ دسترسی read به کاربران این اجازه را میدهد تا محتوای یک فایل را بررسی کنند و یا فایل های موجود در یک دایرکتوری را مشاهده کنند
  • دسترسی write با نماد (w)؛ دسترسی write به کاربران این اجازه را میدهد تا محتوای یک فایل را ویرایش کنند. این ویرایش ها میتواند شامل نوشتن محتوای جدید، ویرایش کردن محتوای قبلی و یا حتی پاک کردن آنها باشد
  • دسترسی execute با نماد (x)؛ کاربران با دسترسی execute، میتوانند اقدام به اجرای فایل ها در سیستم بکنند. اجرای یک فایل نیازمند این است تا به صورت یک script و یا به صورت یک برنامه اجرا شود.

دسترسی های مخصوص یا Special Permissions

دسترسی setuid (Set User ID)
دسترسی setuid به کاربران این اجازه را میدهد تا یک فایل را، با عنوان دسترسی یا Permission های اعمال شده به مالک آن فایل اجرا بکنند و نه دسترسی های مربوط به کاربر. setuid معمولا برای فایل های قابل اجرایی استفاده میشود که نیاز است آنها را با دسترسی های بالاتر اجرا کرد.

دسترسی setgid (Set Group ID)
مانند دستور setuid، این دستور به کاربر اجازه میدهد تا فایل را با دسترسی های اعمال شده به گروه مربوط به فایل اجرا بکند. setgid برای دایرکتوری ها استفاده میشود تا از ارثبری ویژگی های دایرکتوری همان گروه، در فایل اطمینان حاصل شود.

دسترسی sticky bit
زمانی که دسترسی sticky bit به یک دایرکتوری اعمال میشود، تنها سازنده فایل های موجود در آن دایرکتوری و کاربر root سیستم قادر به حذف کردن فایل های آن دایرکتوری خواهند بود. حتی اگر دیگر کاربران دسترسی یا Permission لازم برای حذف کردن فایل ها را داشته باشند، با وجود این دسترسی در دایرکتوری، امکان حذف کردن فایل های آن را نخواهند داشت. این دسترسی عموما در دایرکتوری های اصلی مانند /tmp اعمال میشود، تا از بروز خرابکاری توسط دیگر کاربران در آن جلوگیری شود.

چگونه دسترسی ها را در لینوکس تغییر دهیم

تغییر دسترسی ها در لینوکس، به دو حالت انجام میشود؛ حالت مطلق (absolute mode) و حالت نمادین (symbolic mode)

هر حالت، رویکرد خود را در اعمال دسترسی ها دارد. در هر دو حالت از دستور chmod استفاده میکنیم.

chmod [permission] [file_name/directory]

حالت نمادین (Symbolic Mode)
در حالت با استفاده از حروف الفبای انگلیسی دسترسی ها را به گروه های مختلف برای یک فایل اعمال میکنیم. در تعریف این دسترسی ها، از حرف u برای کاربر و مالک فایل، از حرف g برای گروه و از o برای دیگر مواردی که نیاز است به آنها دسترسی اعمال کنیم، استفاده میکنیم.

حروف دیگر که در مقابل هرکدام از این حروف قرار میگیرند، به معنای سطح دسترسی اعمال شده به آن بخش میباشند. برای این‌کار، یک علامت = در مقابل حرف مربوط به آن کلاس یا بخش قرار میدهیم و پس از آن، سطح دسترسی را برای خواندن یا read یا حرف r، برای نوشتن یا write با حرف w و برای اجرا یا execute با حرف x، تعریف میکنیم.

برای مثال، از این دستور برای اعمال تمام دسترسی ها به یک فایل در تمام بخش ها استفاده میکنیم:


chmod u=rwx,g=rwx,o=rwx [file_name]


برای تنظیم دسترسی ها برای فایل test.txt به حالتی که در متن قبلی مربوط به آن:

  • دسترسی read و write برای کاربر
  • دسترسی read برای اعضای موجود گروه
  • دسترسی read برای باقی کاربران سیستم

از این دستور استفاده میکنیم:

chmod u=rw,g=r,o=r test.txt

حالت مطلق (Absolute Mode)
در حالت مطلق، با استفاده از سیستم اعداد اکتال یا بر مبنای 8، دسترسی ها را به فایل های خود اعمال میکنیم. این حالت به دلیل اینکه پیچیدگی کمتری از دستورات مربوط به حالت نمادین دارد، سریعتر است.

به جای نماد ها یا حروف، حالت مطلق از سیستم عدد برای اعمال دسترسی ها استفاده میکند:

  • عدد 4 به معنای دسترسی read
  • عدد 2 به معنای دسترسی write
  • عدد 1 به معنای دسترسی execute
  • عدد 0 به معنای این است که هیچ دسترسی اعمال نشده است

این اعداد با یکدیگر جمع شده و سطح دسترسی را تعیین میکنند. پس احتمالات به این صورت است:

  • عدد 7 به معنای اعمال دسترسی های read، write و execute
  • عدد 6 به معنای اعمال دسترسی های read و write
  • عدد 5 به معنای اعمال دسترسی های read و execute
  • عدد 4 به معنای اعمال دسترسی read

از آنجایی که باید دسترسی را به ازای هر سطح تعریف بکنید (دسترسی های read، write و execute)، دستور اعمال دسترسی شامل سه عدد میشود. هر عدد به معنای مقدار دسترسی است که به کاربر اعمال میکنید.

در حالت نمادین ما از حروف و نماد ها برای اعمال سطح دسترسی استفاده میکردیم. حال میخواهیم اینکار را با استفاده از حالت مطلق بکنیم. برای اعمال همان دسترسی ها به فایل test.txt، دستور را به این صورت وارد میکنیم:

chmod 644 test.txt

چگونه مالکیت یک فایل یا دایرکتوری را در لینوکس تغییر دهیم

جدای تغییر دسترسی های یک فایل یا دایرکتوری در لینوکس، در مواقعی نیاز دارید تا مالکیت آنها را نیز تغییر دهید. هر دو حالت نیازمند دسترسی root میباشند.

تغییر مالکیت فایل
برای تغییر مالکیت یک فایل، از دستور chown استفاده میکنیم:

chown [user_name] [file_name/directory]

در این دستور، بخش [user_name] را با نام کاربری که میخواهیم مالک جدید آن فایل باشد، جایگزین میکنیم.

تغییر مالکیت گروه
همچنین برای تغییر مالکیت یک گروه، از دستور chgrp استفاده میکنیم:

chgrp [group_name] [file_name/directory]

نیاز است تا بخش [group_name] را با نام گروهی که میخواهیم مالک آن فایل ها باشد، جایگزین کنیم.

به اشتراک گذاری نوشته
hidata.org/blog/linux-permissions-explained/
کپی لینک
در شبکه اجتماعی

افزودن دیدگاه

درحال پاسخ هستید به
captcha
هاست اشتراکی
  • هاست سی پنل پربازدید
  • هاست سی پنل حرفه ای
  • هاست دانلود
سرور اختصاصی
  • سرور اختصاصی ایران
  • سرور اختصاصی اروپا
  • سرور اختصاصی روسیه
درباره های دیتا
های دیتا
HiData
های‌دیتا از فروردین ۱۳۹۳ با تکیه بر زیرساخت قدرتمند و گرانقیمت در برترین دیتاسنترهای ایران و جهان، میزبان هزاران کسب‌وکار آنلاین است. ما با بهره‌گیری از سرورهای نسل جدید مجهز به پردازنده‌های پرتوان، شبکه‌ای پرظرفیت و سیاست سخت‌گیرانه در امنیت داده‌ها، نیازهای میزبانی شما را با بالاترین استاندارد پاسخ می‌دهیم. پشتیبانی ۲۴‌ساعته ما از طریق تیکت و تماس تلفنی همیشه کنار شماست. سرعت، پایداری و آرامش خاطر نه شعار، بلکه هویت های‌دیتاست.
سرور مجازی
  • سرور مجازی SATA ایران
  • سرور مجازی NVMe ایران
  • سرور مجازی NVMe آلمان
  • سرور مجازی NVMe روسیه
  • سرور مجازی SSD ترکیه
  • سرور مجازی ابری
  • سرور مجازی حجیم
دیگر خدمات
  • ثبت دامنه
  • کانفیگ سرور
  • لایسنس های سیستمی
  • گواهینامه SSL
شماره تماس 1: 90009019
های تیوب های کادمی های کست های بلاگ
آدرس
دفتر مرکزی: ابهر، خیابان امام خمینی، مجتمع تجاری طلا، طبقه 2، واحد 8
شماره های تماس
90009019
پـشـتـیـبـانـــی ۲۴ سـاعـتــــــه
ایمیل پشتیبانی: info@hidata.org
© 2025 HiData
All rights reserved for hidata.org
فروشگاه قطعات سرور های‌دیتا استور
تامین قطعات سرورها در داخل کشور