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

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

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

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

خوندن فایل

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

نوشتن در فایل

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

اجرا کردن فایل

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


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

بررسی دستور chmod

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

فرم کلی:

chmod "<numbers|letters>" "path_to_file"
        

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

با دستور chmod میتونیم به دو روش دسترسی به یک فایل رو تغییر بدیم:

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

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

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

chmod "<numbers|letters> -R "path_to_directory"
        

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

فرم کلی:

chmod "<agent><op><mod>" "path_to_file"
        

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

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

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

حروف u, g, o و a در chmod

با استفاده از حروف 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 در chmod

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

حرف x

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

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

chmod "u=x" "path_to_file"
            

حرف w

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

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

chmod "g=w" "path_to_file"
            

حرف r

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

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

chmod "o=r" "path_to_file"
            

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

chmod "u=rw" "path_to_file"
chmod "g=r" "path_to_file"
chmod "o=r" "path_to_file"
        

علامت های = + و - در chmod

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

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

chmod "u=xr" "path_to_file" 
        

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

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

chmod "g+w" "path_to_file"
        

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

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

chmod "u-w" "path_to_file"
        

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

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

فرم کلی:

chmod nnn "path_to_file"
        

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

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

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

چهار عدد اصلی در chmod

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

عدد 0

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

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

chmod 000 "path_to_file"
          

عدد 1

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

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

chmod 100 "path_to_file"
          

عدد 2

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

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

chmod 120 "path_to_file"
            

عدد 4

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

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

chmod 124 "path_to_file"
            

جمع اعداد اصلی در chmod

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

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

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

chmod 540 "path_to_file"
        

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

chmod 775 "path_to_file"
        

خلاصه

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

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

arrow_drop_up
کپی شد!