Chmod
chmod که مخفف change mode است، فرمانی برای تغییر مجوزهای یک پرونده یا دایرکتوری(پوشه) است.
از این فرمان برای اصلاح اینکه چه کسانی اجازه اجرا، خواندن و نوشتن در کدام دایرکتوریها و بر روی کدام فایلها را دارند، استفاده میشود. دستور chmod در نگاه اول پیچیده بنظر میرسد ولی در واقع ساده و منطقی است.
دیدن مجوز ها
برای دیدن مجوزهای پرونده یا پوشهها میتوان از فرمان ls به این صورت استفاده کرد:
$ ls -l
در هر خط اولین کاراکتر نشان دهنده نوع ورودی است. بعضی از مقدارهایی که این کاراکتر میگیرد:
- - : نشان دهنده پرونده یا فایل
- d : نشان دهنده دایرکتوری یا پوشه
- l : نشان دهنده لینک
- s : نشان دهنده سوکت
- b : نشان دهنده بلوک (پاراتیشن)
- c : نشان دهنده کاراکتر
- ...
بعد از اولین کاراکتر 9 کاراکتر بعدی برای نمایش مجوزهای ورودیها استفاده میشود. این کاراکترها میتوانند مقدارهای زیر را داشته باشند:
- r : نشان دهنده مجوز خواندن (read)
- w : نشان دهنده مجوز نوشتن (write)
- x : نشان دهنده مجوز اجرا (execute)
- - : نشان دهنده این است که مجوز تعیین نشده
- X : ...
- s : نشان دهنده بیت SUID یا SGID است
- S : نشان دهنده بیت SUID یا SGID است، اما مجوز اجرایی(x) متناظر تعیین نشده است
- t : نشان دهنده بیت چسبناک(sticky-bit) یا محافظت از حذف است
- T : نشان دهنده بیت چسبناک(sticky-bit) یا محافظت از حذف است، اما بیت اجرایی(x) متناظر تعیین نشده است
بعد از اولین کاراکتر بقیه 9 کاراکتر به سه گروه سه تایی تقسیم میشود. به ترتیب از سمت چپ :
- سه کاراکتر اول نشان دهنده مجوز های صاحب پرونده یا کاربر(user) :
-rwxrwxrwx
- بعد از ان سه کاراکتر بعدی نشان دهنده مجوز های گروه(group) :
-rwxrwxrwx
- و در اخر سه کاراکتر باقی مانده نشان دهنده دیگران(other) :
-rwxrwxrwx
برای مثال :
-
-rwxr-xr-x
: نشان میدهد که صاحب پرونده(چون اولین کاراکتر "-" است) تمام دسترسی های خواندن، نوشتن و اجرا کردن را دارد و اعضای گروه پرونده و دیگران اجازه خواندن و اجرا کردن پرونده را دارد، ولی اجازه نوشتن در پرونده را ندارند.
-
drwxr-x---
: نشان میدهد که صاحب دایرکتوری(چون اولین کاراکتر "d" است) تمام دسترسی های خواندن، نوشتن و اجرا کردن را دارد و اعضای گروه دایرکتوری اجازه خواندن و اجرا کردن را دارد و دیگران هیچ اجازهای برای خواندن، نوشتن یا اجرا کردن در دایرکتوری را ندارند.
-
drwxrwxrwt
: نشان میدهد که صاحب دایرکتوری(چون اولین کاراکتر "d" است) تمام دسترسی های خواندن، نوشتن و اجرا کردن را دارد و اعضای گروه دایرکتوری نیز مانند صاحب دایرکتوری، اجازه خواندن، نوشتن و اجرا کردن پوشه را دارد و دیگران نیز همه مجوز ها را دارند و همچنین بیت چسبناک(sticky-bit) نیز برای این دایرکتوری تعیین شده است.
گزینهها
-c, --changes
- مانند verbose اما فقط در صورت ایجاد تغییر گزارش میدهید
-f, --silent, --quiet
- بیشتر پیغام های خطا را نادیده میگیرد
-v, --verbose
- برای هر پروسه اطلاعات اضافی را چاپ میکند
--no-preserve-root
- do not treat '/' specially (the default)
--preserve-root
- fail to operate recursively on '/'
--reference=RFILE
- استفاده از مجوز های فایل 'RFILE' به عنوان مرجع (از مجوزهای فایل 'RFILE' استفاده میکند)
-R, --recursive
- تغییر همه پروندهها و دایرکتوریها به صورت بازگشتی
--help
- راهنما را نمایش میدهد
--version
- نسخه برنامه را نمایش میدهد
روش کار
میتوان از فرمان chmod به این شکل استفاده کرد:
chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE...