تغییر سطح دسترسی فایل با دستور chmod در لینوکس

تغییر سطح دسترسی فایل با دستور chmod در لینوکس

حالت های مختلف فایل

برای یک فایل سه حالت خوندن (read)، نوشتن (write) و اجرا کردن (execute) وجود داره.

خوندن

در این حالت فایل قابل خوندن (readable) است، به فایل هایی که فقط قابل خوندن باشن و قابل نوشتن یا اجرا شدن نباشن، فایل های read-only میگیم.

نوشتن

در این حالت محتوای فایل میتونه توسط برنامه ها تغییر کنه؛ به فایل هایی که این حالت براشون وجود داره فایل های writable میگیم.

اجرا کردن

در این حالت فایل اگه برنامه باشه، قابل اجرا در سیستم عامل است؛ به فایل هایی که این حالت براشون وجود داره فایل های executable میگیم.


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

بررسی دستور chmod

با استفاده از دستور chmod در لینوکس میتونیم دسترسی خوندن نوشتن یا اجرا کردن فایل رو برای user، group یا other تغییر بدیم؛ chmod یک دستور قابل اجرا در محیط shell و مخفف change mode است.

توجه

در مثال های این مطلب بجای file باید اسم فایل کامل نوشته بشه، فرض کنید یک فایل داریم به نام movie.mp4 باید به همین صورت بجای file بنویسیمش و اگه فایل در مسیر دیگه ای قرار داشته باشه، باید مسیر فایل با نام فایل به صورت کامل (مثلا /home/username/movie.mp4) نوشته بشه.

فرم کلی:

chmod <numbers|letters> file
        

در بالا <numbers|letters> اعداد یا حروفی هستن که میتونیم باهاشون سطح دسترسی فایل رو تغییر بدیم.

با دستور chmod میتونیم از طریق حروف یا اعداد سطح دسترسی فایل رو تغییر بدیم.

اگه بخوایم سطح دسترسی یک پوشه رو تغییر بدیم با استفاده از آرگومان R میتونیم علاوه بر پوشه، سطح دسترسی محتوای داخل پوشه رو هم تغییر بدیم.

chmod <numbers|letters> -R file
        

تغییر سطح دسترسی فایل با استفاده از حروف

فرم کلی:

chmod <agent><op><mod> file
        

در بالا بجای <agent> یکی از حروف u, g, o یا a رو مینویسیم

بجای <mode> یک، دو یا هر سه حرف r, w و x مینویسیم

بجای <op> یکی از علامت های +, - یا = رو می نویسیم.

حروف u, g, o و a

با استفاده از حروف u, g, o یا a تعیین میکنیم سطح دسترسی فایل برای کدوم دسته از user, group یا other تغییر پیدا کنه.

حرف u

حرف u ابتدای کلمه ی user است یعنی میخوایم سطح دسترسی فایل رو برای کاربر (user) تغییر بدیم.

حرف g

حرف g ابتدای کلمه ی group است؛ یعنی میخوایم سطح دسترسی فایل رو برای گروه (group) تغییر بدیم.

حرف o

حرف o ابتدای کلمه ی other است؛ یعنی میخوایم سطح دسترسی فایل رو برای کسایی که نه تو دسته ی user هستند و نه تو دسته ی group تغییر بدیم.

حرف a

از حرف a زمانی استفاده می کنیم که بخوایم سطح دسترسی فایل رو برای هر سه user, group و other تغییر بدیم.

حروف r, w و x

با استفاده از حروف w, x, و r نوع سطح دسترسی (نوشتن، اجرا شدن یا خوندن) رو تعیین میکنیم.

حرف x

حرف x در chmod یکی از حروف execute است؛ با این حرف تعیین می کنیم فایل برای user, group یا other قابل اجرا باشه.

میخوایم به user فقط دسترسی اجرا کردن فایل رو بدیم.

chmod u=x file
            

حرف w

حرف w در chmod ابتدای کلمه ی write است؛ با w میتونیم دسترسی نوشتن در فایل رو به user, group یا other بدیم.

میخوایم به group فقط دسترسی نوشتن در فایل رو بدیم.

chmod g=w file
            

حرف r

این حرف ابتدای کلمه ی read است؛ با r میتونیم دسترسی خوندن برای به user, group یا other به فایل بدیم.

میخوایم به other فقط دسترسی خوندن فایل رو بدیم.

chmod o=r file
            

در مثال زیر میخوایم دسترسی خوندن و نوشتن فایل رو به کاربر (user) بدیم و به گروه (group) و دیگران (other) فقط دسترسی خوندن بدیم.

chmod u=rw file
chmod g=r file
chmod o=r file
        

علامت های = + و -

اگه بخوایم بجای دسترسی هایی که برای فایل وجود داره دسترسی های جدید تعریف کنیم از = استفاده می کنیم.

در مثال زیر میخوایم برای user دسترسی خوندن و اجرا کردن فایل رو بدیم.

chmod u=xr file
        

اگه بخوایم بدون تغییر در سایر دسترسی های تعریف شده برای فایل یک دسترسی جدید به فایل اضافه کنیم، از + استفاده می کنیم.

در مثال زیر دسترسی write رو به group اضافه کردیم.

chmod g+w file
        

اگه بخوایم بدون تغییر در سایر دسترسی های تعریف شده برای فایل یک دسترسی رو از فایل بگیریم از - استفاده می کنیم.

در مثال زیر دسترسی write به فایل رو از user حذف کردیم.

chmod u-w file
        

تغییر سطح دسترسی فایل با استفاده از اعداد

علاوه بر حروف میتونیم سطح دسترسی فایل رو با استفاده از اعداد در chmod تغییر بدیم.

فرم کلی:

chmod nnn file
        

در بالا سه تا n وجود داره، بجای هر n یک عدد بین 0 تا 7 باید بزاریم، به ترتیب از چپ n اول مربوط میشه به دسترسی به فایل برای user، دومین n دسترسی به فایل برای group و اخرین n دسترسی به فایل برای other.

در زیر هر عدد با دسترسی که به فایل میده، برای user, group, other و all بیان شده.

تغییر دسترسی به فایل با استفاده از اعداد در chmod
تغییر دسترسی به فایل با استفاده از اعداد در chmod

چهار عدد اصلی

چهار عدد اصلی بین 0 تا 7 وجود داره و سایر اعداد از جمع این چهار عدد به دست میان.

عدد 0

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

میخوایم هیچ دسترسی به فایل برای user, group و other وجود نداشته باشه.

chmod 000 file
          

عدد 1

عدد 1 در chmod دسترسی اجرای فایل رو به user, group یا other میده.

میخوایم دسترسی اجرای فایل رو به user بدیم

chmod 100 file
          

عدد 2

عدد 2 در chmod دسترسی به نوشتن در فایل رو به user, group یا other میده.

میخوایم به user دسترسی اجرای فایل رو بدیم و به group دسترسی نوشتن در فایل.

chmod 120 file
            

عدد 4

عدد 4 در chmod دسترسی خوندن فایل رو به user, group یا other میده.

میخوایم به user دسترسی اجرای فایل رو بدیم، به group دسترسی نوشتن در فایل و به other دسترسی خوندن فایل رو بدیم.

chmod 124 file
            

جمع چهار عدد اصلی

همه ی اعداد بین 0 تا 7 در chmod از جمع چهار عدد اصلی 1, 2, 4 به دست میان.

فرض کنید میخوایم دسترسی خوندن و اجرا کردن فایل رو به user بدیم و به group فقط دسترسی خوندن داده و به other هیچ دسترسی به فایل ندیم.

گفتیم عدد 1 برای اجرا کردن فایل و عدد 4 برای خوندن فایل است، برای اینکه یک فایل قابل خوندن و قابل اجرا شدن باشه جمع 1 و 4 میشه 5؛ پس عدد پنج دسترسی خوندن واجرا کردن فایل رو میده.

chmod 540 file
        

فرض کنید میخوایم دسترسی خوندن فایل، نوشتن در فایل و اجرا کردن فایل رو به user و group داده و تنها دسترسی خوندن و اجرا کردن فایل رو به other بدیم. عدد 1 برای اجرا کردن فایل است، عدد 2 برای نوشتن در فایل و عدد 4 برای خوندن در فایل.

chmod 775 file
        

خلاصه

  • با استفاده از دستور chmod در لینوکس میتونیم سطح دسترسی فایل رو برای user, group و other تغییر بدیم.
  • با دستور chmod در لینوکس میتونیم سطح دسترسی به فایل رو با استفاده از حروف یا اعداد تغییر بدیم.
  • برای تغییر سطح دسترسی فایل با استفاده از حروف باید از حروف ugo برای سه دسته ی user, group و other استفاده کنیم و از rwx برای تعیین سطح دسترسی خوندن، نوشتن و اجرا کردن استفاده کنیم.
  • برای تغییر دسترسی به فایل در chmod با استفاده از اعداد، ۳ رقم وجود داره که هر رقم به ترتیب از چپ به راست برای user, group و other است و برای هر رقم میتونیم یک عدد بین 0 تا 7 انتخاب کنیم.
  • هنگام استفاده از اعداد برای تغییر سطح دسترسی فایل در chmod چهار عدد اصلی وجود داره که سایر اعداد از جمع این چهار عدد به دست میاد.

بازخورد و دیدگاه‌ ها

اولین نفری باشید که در این صفحه نظر می‌دهید

notifications برای اطلاع از جدیدترین مطالب و پست های مرتبط، عضو کانال تلگرام ما بشید.

arrow_drop_up
کپی شد!