chmod که مخفف change mode است، نرمافزاری برای تغییر دسترسیهای یک پرونده است.
از این برنامه برای اصلاح اینکه چه کسانی اجازه اجرا، خواندن و نوشتن در کدام شاخهها و روی کدام پروندهها را دارند، استفاده میشود.
برای دیدن دسترسیهای پروندهها میتوان از برنامهٔ ls به این صورت استفاده کرد:
$ ls -l
در هر خط، نخستین نویسه، نشاندهندهٔ نوع پرونده است. برخی مقدارهایی که این نویسه میگیرد:
بعد از نخستین نویسه، ۹ نویسهٔ بعدی برای نمایش دسترسیهای پرونده استفاده میشود. این نویسهها میتوانند مقدارهای زیر را داشته باشند:
این ۹ نویسه به سه گروه سهتایی تقسیم میشوند:
-rwxrwxrwx → بخش اول (مثلاً rwx)rwx)rwx)-rwxr-xr-x : مالک همه دسترسیها را دارد. گروه و دیگران فقط خواندن و اجرا دارند.drwxr-x--- : مالک همه دسترسیها را دارد. گروه فقط خواندن و دیدن محتوا را دارد. دیگران هیچ.drwxrwxrwt : همه دسترسیها برای همه وجود دارد. همچنین بیت چسبناک فعال است.-c, --changes
مانند verbose اما فقط در صورت ایجاد تغییر گزارش میدهد
-f, --silent, --quiet
بیشتر پیغامهای خطا را نادیده میگیرد
-v, --verbose
اطلاعات اضافی را چاپ میکند
--no-preserve-root
به صورت ویژه با / رفتار نمیکند (پیشفرض)
--preserve-root
اجازه اعمال بازگشتی به / را نمیدهد
--reference=RFILE
استفاده از دسترسیهای پرونده RFILE به عنوان مرجع
-R, --recursive
تغییر همه پروندهها و شاخهها به صورت بازگشتی
--help
نمایش راهنما
--version
نمایش نگارش برنامه
برای استفاده از chmod باید سه چیز را به آن بگوییم:
u=rwx → فقط به مالک، دسترسی کامل بده و بقیه را حذف کن
a+x → دسترسی اجرا را به همه اضافه کن
u=rwx,go+rx → مالک کامل؛ گروه و دیگران فقط خواندن و اجرا
u+s,go+x → بیت SUID برای مالک، و اجرا برای گروه و دیگران
o+t → بیت چسبناک برای دیگران
دستور کلی:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
پروندهای به نام new.txt میسازیم.
$ ls -l new.txt

تغییر دسترسی:
$ chmod u=rwx,og=rx new.txt

حذف اجرای همه:
$ chmod a-x new.txt
