Chmod: تفاوت بین نسخه‌ها

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو
(در حال تکمیل روش کار (ناقص))
 
(۵ نسخه‌ٔ میانی ویرایش شده توسط ۳ کاربر نشان داده نشده)
سطر ۱: سطر ۱:
 +
{{ویرایش|این نوشته تلاشی است در ترجمه مقاله  [https://www.howtogeek.com/437958/how-to-use-the-chmod-command-on-linux How to Use the chmod Command on Linux]  در صورت امکان به تکمیل ترجمه آن کمک کنید.}}
 +
 
[[پرونده:chmod_1.png|500px|left]]
 
[[پرونده:chmod_1.png|500px|left]]
'''chmod''' که مخفف change mode است، فرمانی برای تغییر [[دسترسی‌ها|مجوزهای]] یک پرونده یا دایرکتوری(پوشه) است.
+
'''chmod''' که مخفف change mode است، نرم‌افزاری برای تغییر [[pemission|دسترسی‌های]] یک پرونده است.
  
از این فرمان برای اصلاح این‌که چه کسانی اجازه اجرا، خواندن و نوشتن در کدام دایرکتوری‌ها و بر روی کدام فایل‌ها را دارند، استفاده می‌شود.
+
از این برنامه برای اصلاح این‌که چه کسانی اجازه اجرا، خواندن و نوشتن در کدام شاخه‌ها و روی کدام پرونده‌ها را دارند، استفاده می‌شود.
  
== دیدن مجوز ها ==
+
== دیدن دسترسی‌ها ==
برای دیدن مجوزهای پرونده یا پوشه‌ها میتوان از فرمان '''[[ls]]''' به این صورت استفاده کرد:
+
برای دیدن دسترسی‌های پرونده‌ها می‌توان از برنامهٔ '''[[ls]]''' به این صورت استفاده کرد:
 
<code dir=ltr>$ ls -l</code>
 
<code dir=ltr>$ ls -l</code>
  
در هر خط اولین کاراکتر نشان دهنده نوع ورودی است. بعضی از مقدارهایی که این کاراکتر می‌گیرد:
+
در هر خط، نخستین نویسه، نشان دهندهٔ نوع پرونده است. برخی مقدارهایی که این نویسه می‌گیرد:
* ''' - ''': نشان دهنده پرونده یا فایل
+
* ''' - ''': نشان‌دهندهٔ پروندهٔ عادی
* ''' d ''': نشان دهنده دایرکتوری یا پوشه
+
* ''' d ''': نشان دهندهٔ شاخه
* ''' l ''': نشان دهنده لینک
+
* ''' l ''': نشان دهندهٔ پیوند
* ''' s ''': نشان دهنده سوکت
+
* ''' s ''': نشان‌دهندهٔ سوکت
* ''' b ''': نشان دهنده بلوک (پاراتیشن)
+
* ''' b ''': نشان دهندهٔ بلاک
* ''' c ''': نشان دهنده کاراکتر
+
* ''' c ''': نشان‌دهندهٔ نویسه
 
* ''' ... '''
 
* ''' ... '''
  
بعد از اولین کاراکتر 9 کاراکتر بعدی برای نمایش مجوزهای ورودی‌ها استفاده می‌شود. این کاراکترها می‌توانند مقدارهای زیر را داشته باشند:
+
بعد از نخستین نویسه ۹ نویسهٔ بعدی برای نمایش دسترسی‌های پرونده استفاده می‌شود. این نویسه‌ها می‌توانند مقدارهای زیر را داشته باشند:
* ''' r ''': نشان دهنده مجوز خواندن (read)
+
* ''' r ''': نشان‌دهندهٔ دسترسی خواندن (read)
* ''' w ''': نشان دهنده مجوز نوشتن (write)
+
* ''' w ''': نشان‌دهندهٔ دسترسی نوشتن (write)
* ''' x ''': نشان دهنده مجوز اجرا (execute)
+
* ''' x ''': نشان‌دهندهٔ دسترسی اجرا (execute)
* ''' - ''': نشان دهنده این است که مجوز تعیین نشده
+
* ''' - ''': نشان‌دهندهٔ این است که دسترسی تعیین نشده
 
* ''' X ''': ...
 
* ''' X ''': ...
* ''' s ''': نشان دهنده بیت '''[[SUID]]''' یا '''[[SGID]]''' است
+
* ''' s ''': نشان‌دهندهٔ بیت '''[[SUID]]''' یا '''[[SGID]]''' است
* ''' S ''': نشان دهنده بیت '''[[SUID]]''' یا '''[[SGID]]''' است، اما مجوز اجرایی('''x''') متناظر تعیین نشده است
+
* ''' S ''': نشان‌دهندهٔ بیت '''[[SUID]]''' یا '''[[SGID]]''' است، اما دسترسی اجرایی('''x''') متناظر تعیین نشده است
* ''' t ''': نشان دهنده بیت چسبناک('''[[sticky-bit]]''') یا محافظت از حذف است
+
* ''' t ''': نشان‌دهندهٔ بیت چسبناک('''[[sticky-bit]]''') یا محافظت از حذف است
* ''' T ''': نشان دهنده بیت چسبناک('''[[sticky-bit]]''') یا محافظت از حذف است، اما بیت اجرایی('''x''') متناظر تعیین نشده است
+
* ''' T ''': نشان‌دهندهٔ بیت چسبناک('''[[sticky-bit]]''') یا محافظت از حذف است، اما بیت اجرایی('''x''') متناظر تعیین نشده است
  
بعد از اولین کاراکتر بقیه 9 کاراکتر به سه گروه سه تایی تقسیم میشود. به ترتیب از سمت چپ :
+
بعد از نخستین نویسه بقیهٔ ۹ نویسه به سه گروه سه‌تایی تقسیم می‌شوند. به ترتیب از سمت چپ :
  
* سه کاراکتر اول نشان دهنده مجوز های صاحب پرونده یا کاربر('''user''') : <code dir=ltr>-<span style="color:red">rwx</span>rwxrwx</code>
+
* سه نویسهٔ نخست نشان‌دهندهٔ دسترسی‌های مالک پرونده یا کاربر('''user''') : <code dir=ltr>-<span style="color:red">rwx</span>rwxrwx</code>
* بعد از ان سه کاراکتر بعدی نشان دهنده مجوز های گروه('''group''') : <code dir=ltr>-rwx<span style="color:red">rwx</span>rwx</code>
+
* سه نویسهٔ پس از آن، نشان‌دهندهٔ دسترسی‌های گروه('''group''') : <code dir=ltr>-rwx<span style="color:red">rwx</span>rwx</code>
* و در اخر سه کاراکتر باقی مانده نشان دهنده دیگران('''other''') : <code dir=ltr>-rwxrwx<span style="color:red">rwx</span></code>
+
* و در پایان، سه نویسهٔ باقی‌مانده، نشان‌دهندهٔ دسترسی‌های دیگران('''other''') : <code dir=ltr>-rwxrwx<span style="color:red">rwx</span></code>
  
 
برای مثال :
 
برای مثال :
* <code dir=ltr>-rwxr-xr-x</code> : نشان میدهد که صاحب پرونده(چون اولین کاراکتر "'''-'''" است) تمام دسترسی های خواندن، نوشتن و اجرا کردن را دارد و اعضای گروه پرونده و دیگران اجازه خواندن و اجرا کردن پرونده را دارد، ولی اجازه نوشتن در پرونده را ندارند.
+
* <code dir=ltr>-rwxr-xr-x</code> : نشان می‌دهد که صاحب پرونده(چون نخستین نویسه "'''-'''" است) تمام دسترسی های خواندن، نوشتن و اجرا کردن را دارد و اعضای گروه پرونده و دیگران اجازهٔ خواندن و اجرا کردن پرونده را دارند، ولی اجازهٔ نوشتن در پرونده را ندارند.
  
* <code dir=ltr>drwxr-x---</code> : نشان میدهد که صاحب دایرکتوری(چون اولین کاراکتر "'''d'''" است) تمام دسترسی های خواندن، نوشتن و اجرا کردن را دارد و اعضای گروه دایرکتوری اجازه خواندن و اجرا کردن را دارد و دیگران هیچ اجازه‌ای برای خواندن، نوشتن یا اجرا کردن در دایرکتوری را ندارند.
+
* <code dir=ltr>drwxr-x---</code> : نشان می‌دهد که صاحب شاخه(چون نخستین نویسه "'''d'''" است) تمام دسترسی‌های خواندن، نوشتن و دیدن پرونده‌های درون شاخه را دارد و اعضای گروه شاخه، اجازهٔ خواندن و دیدن پرونده‌های داخلی را دارند و دیگران هیچ اجازه‌ای برای خواندن از، نوشتن در یا دیدن محتوای شاخه را ندارند.
  
* <code dir=ltr>drwxrwxrwt</code> : نشان میدهد که صاحب دایرکتوری(چون اولین کاراکتر "'''d'''" است) تمام دسترسی های خواندن، نوشتن و اجرا کردن را دارد و اعضای گروه دایرکتوری نیز مانند صاحب دایرکتوری، اجازه خواندن، نوشتن و اجرا کردن پوشه را دارد و دیگران نیز همه مجوز ها را دارند و همچنین بیت چسبناک('''[[sticky-bit]]''') نیز برای این دایرکتوری تعیین شده است.
+
* <code dir=ltr>drwxrwxrwt</code> : نشان می‌دهد که صاحب شاخه(چون نخستین نویسه "'''d'''" است) تمام دسترسی‌های خواندن، نوشتن و دیدن پرونده‌های درون شاخه را دارد و اعضای گروه شاخه نیز مانند صاحب شاخه، اجازه خواندن، نوشتن و دیدن پرونده‌های درون شاخه را دارند و دیگران نیز همه دسترسی ها را دارند و همچنین بیت چسبناک('''[[sticky-bit]]''') نیز برای این شاخه تعیین شده است.
  
  
سطر ۴۵: سطر ۴۷:
  
 
<code dir=ltr>'''-c, --changes'''</code>
 
<code dir=ltr>'''-c, --changes'''</code>
: مانند '''verbose''' اما فقط در صورت ایجاد تغییر گزارش می‌دهید
+
: مانند '''verbose''' اما فقط در صورت ایجاد تغییر گزارش می‌دهد
  
 
<code dir=ltr>'''-f, --silent, --quiet'''</code>
 
<code dir=ltr>'''-f, --silent, --quiet'''</code>
: بیشتر پیغام های خطا را نادیده می‌گیرد
+
: بیش‌تر پیغام های خطا را نادیده می‌گیرد
  
 
<code dir=ltr>'''-v, --verbose'''</code>
 
<code dir=ltr>'''-v, --verbose'''</code>
: برای هر پروسه اطلاعات اضافی را چاپ می‌کند
+
: برای هر فرایند، اطّلاعات اضافی را چاپ می‌کند
  
 
<code dir=ltr>'''--no-preserve-root'''</code>
 
<code dir=ltr>'''--no-preserve-root'''</code>
سطر ۶۰: سطر ۶۲:
  
 
<code dir=ltr>'''--reference=RFILE'''</code>
 
<code dir=ltr>'''--reference=RFILE'''</code>
: استفاده از مجوز های فایل 'RFILE' به عنوان مرجع (از مجوزهای فایل 'RFILE' استفاده می‌کند)
+
: استفاده از دسترسی‌های پرونده 'RFILE' به عنوان مرجع (از دسترسی‌های پرونده 'RFILE' استفاده می‌کند)
  
 
<code dir=ltr>'''-R, --recursive'''</code>  
 
<code dir=ltr>'''-R, --recursive'''</code>  
: تغییر همه پرونده‌ها و دایرکتوری‌ها به صورت بازگشتی
+
: تغییر همه پرونده‌ها و شاخه‌ها به صورت بازگشتی
  
 
<code dir=ltr>'''--help'''</code>
 
<code dir=ltr>'''--help'''</code>
سطر ۶۹: سطر ۷۱:
  
 
<code dir=ltr>'''--version'''</code>
 
<code dir=ltr>'''--version'''</code>
: نسخه برنامه را نمایش می‌دهد
+
: نگارش برنامه را نمایش می‌دهد
  
 
== روش کار ==
 
== روش کار ==
  
می‌توان از فرمان '''chmod''' به این شکل استفاده کرد:
+
<!-- https://www.howtogeek.com/437958/how-to-use-the-chmod-command-on-linux -->
 +
برای استفاده از '''chmod''' باید سه چیز را به ان بگوییم:
 +
*''' چه‌کسی ''': برای چه کسی دسترسی‌ها را تعیین می کنیم.
 +
*''' چه‌کار ''': چه تغییری ایجاد می کنیم؟ آیا ما دسترسی را اضافه یا حذف می کنیم؟
 +
*''' چه‌چیز ''': کدام یک از دسترسی‌ها را تعیین می کنیم؟
 +
<br>
 +
مقدار هایی که می‌توانیم برای "'''چه کسی'''" استفاده کنیم، عبارتند از:
 +
:''' u ''': کاربر('''User''')، به معنی صاحب پرونده یا شاخه.
 +
:''' g ''': گروه('''Group''')، به معنی اعضای گروهی است که پرونده به آن تعلق دارد.
 +
:''' o ''': دیگران('''Others''')، به معنی افرادی است که توسط دسترسی‌های "'''u'''" و "'''g'''" اداره نمی شوند.
 +
:''' a ''': همه('''All''')، به معنی همه موارد بالا.
 +
<br>
 +
مقدار هایی که می‌توانیم برای "'''چه‌کار'''" استفاده کنیم، عبارتند از:
 +
:''' + ''': علامت به‌اضافه، از این علامت برای اضافه کردن دسترسی به دسترسی های موجود استفاده می‌شود.
 +
:''' - ''': علامت منهی، از این علامت برای حذف کردن دسترسی استفاده‌ می‌شود.
 +
:''' = ''': علامت مساوی، از این علامت برای اضافه کردن دسترسی های تعیین شده و حذف بقیه دسترسی ها استفاده می‌شود.
 +
<br>
 +
مقدار هایی که می‌توانیم برای "'''چه‌چیز'''" استفاده کنیم، عبارتند از:
 +
:''' r ''': دسترسی خواندن
 +
:''' w ''': دسترسی نوشتن
 +
:''' x ''': دسترسی اجرا
 +
:''' s ''': بیت '''[[SUID]]''' یا '''[[SGID]]'''
 +
:''' t ''': بیت چسبناک('''[[sticky-bit]]''')
 +
<br>
 +
برای مثال:
 +
* <code>u=rwx</code> : نشان می‌دهد که دسترسی های مالک پرونده یا شاخه را به خواندن، نوشتن و اجرا کردن تغیر بده و بقیه مجوز ها را حذف کن.
 +
* <code>a+x</code> : نشان می‌دهد که دسترسی اجرا را به همه کاربران (مالک، گروه پرونده، دیگران) پرونده یا شاخه اضافه کن.
 +
* <code>u=rwx,go+rx</code> : نشان می‌دهد که دسترسی های مالک پرونده یا شاخه را به خواندن، نوشتن و اجرا کردن تغیر بده و دسترسی های خواندن و اجرا کردن را به گروه پرونده و دیگران اضافه کن.
 +
* <code>u+s,go+x</code> : نشان می‌دهد که بیت '''[[SUID]]''' را به مالک پرونده یا شاخه اضافه کن و دسترسی اجرا کردن را به گروه و دیگران اضافه کن.
 +
:: بیت '''[[SUID]]''' یا '''[[SGID]]''' فقط به دسترسی های مالک یا گروه پرونده قابل اضافه شدن است و به دسترسی های دیگران قابل اضافه شدن نیست.
 +
:: برای تنظیم این بیت باید مالک فایل یا ابرکاربر باشید.
 +
:: بیت '''[[SUID]]''' یا '''[[SGID]]''' فقط برای برنامهٔ های باینری عمل میکند و برای اسکریپت ها عمل نمیکند.
 +
* <code>o+t</code> : نشان می‌دهد که بیت چسبناک('''[[sticky-bit]]''') را به پرونده یا شاخه مورد نظر اضافه کن
 +
::  بیت چسبناک('''[[sticky-bit]]''') فقط به دسترسی های دیگران قابل اضافه کردن است.
 +
:: برای تنظیم این بیت باید مالک فایل یا ابرکاربر باشید.
 +
 
 +
== تغییر دسترسی ها ==
 +
 
 +
می‌توان از برنامهٔ '''chmod''' به این شکل استفاده کرد:
 
<!-- https://man7.org/linux/man-pages/man1/chmod.1.html -->
 
<!-- https://man7.org/linux/man-pages/man1/chmod.1.html -->
 
<pre>
 
<pre>
سطر ۸۱: سطر ۱۲۱:
 
</pre>
 
</pre>
  
<!-- https://www.howtogeek.com/437958/how-to-use-the-chmod-command-on-linux -->
+
برای مثال،یک پرونده با نام '''new.txt''' میسازیم.
برای استفاده از '''chmod''' باید سه چیز را به ان بگوییم:
+
برای دیدن دسترسی های پرونده مورد نظر از فرمان '''ls''' به این صورت استفاده‌ میکنیم:
*''' چه‌کسی ''': برای چه کسی مجوزها را تعیین می کنیم.
+
<pre>$ ls -l new.txt</pre>
*''' چه‌کار ''': چه تغییری ایجاد می کنیم؟ آیا ما مجوز را اضافه یا حذف می کنیم؟
+
[[پرونده:chmod_2.png]]
*''' چه‌چیز ''': کدام یک از مجوزها را تعیین می کنیم؟
 
<br>
 
مقدار هایی که میتوانیم برای "'''چه کسی'''" استفاده کنیم، عبارتند از:
 
:''' u ''': کاربر('''User''')، به معنی صاحب پرونده یا پوشه.
 
:''' g ''': گروه('''Group''')، به معنی اعضای گروهی است که پرونده به آن تعلق دارد.
 
:''' o ''': دیگران('''Others''')، به معنی افرادی است که توسط مجوزهای "'''u'''" و "'''g'''" اداره نمی شوند.
 
:''' a ''': همه('''All''')، به معنی همه موارد بالا.
 
 
 
مقدار هایی که میتوانیم برای "'''چه‌کار'''" استفاده کنیم، عبارتند از:
 
:''' + ''': علامت به‌اضافه، از این علامت برای اضافه کردن مجوز به مجوز های موجود استفاده میشود.
 
:''' - ''': علامت منهی، از این علامت برای حذف کردن مجوز استفاده‌ میشود.
 
:''' = ''': علامت مساوی، از این علامت برای اضافه کردن مجوز های تعیین شده و حذف بقیه مجوز ها استفاده میشود.
 
  
مقدار هایی که میتوانیم برای "'''چه‌چیز'''" استفاده کنیم، عبارتند از:
+
ما میخواهیم مالک پرونده دسترسی‌های خواندن، نوشتن و اجرا داشته باشد و گروه و سایر کاربران فقط دسترسی‌های خواندن و اجرا داشته باشند. ما می توانیم با استفاده از دستور زیر این کار را انجام دهیم:
:''' r ''': مجوز خواندن
+
<pre>$ chmod u=rwx,og=rx new.txt</pre>
:''' w ''': مجوز نوشتن
+
[[پرونده:chmod_3.png]]
:''' x ''': مجوز اجرا
 
:''' s ''': بیت '''[[SUID]]''' یا '''[[SGID]]'''
 
:''' t ''': بیت چسبناک('''[[sticky-bit]]''')
 
  
 +
در ادامه ما میخواهیم دسترسی اجرا را از تمام کاربران بگیریم، پس اینگونه عمل میکنید:
 +
<pre>$ chmod a-x new.txt</pre>
 +
[[پرونده:chmod_4.png]]
  
  
 +
== ترجمه لغات ==
 +
* '''شاخه''': دایرکتوری یا پوشه - '''directory'''
 +
* '''دسترسی''': مجوز یا اجازه - '''permission'''
 +
* '''پرونده''': فایل - '''file'''
 +
* '''نویسه''': کاراکتر - '''character'''
 +
* '''پرونده''': لینک - '''link'''
  
 
[[رده:خط فرمان]]
 
[[رده:خط فرمان]]

نسخهٔ کنونی تا ‏۱۳ دی ۱۳۹۹، ساعت ۲۳:۱۹



این صفحه نیازمند ویرایش است.
این نوشته تلاشی است در ترجمه مقاله How to Use the chmod Command on Linux در صورت امکان به تکمیل ترجمه آن کمک کنید.

Chmod 1.png

chmod که مخفف change mode است، نرم‌افزاری برای تغییر دسترسی‌های یک پرونده است.

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

دیدن دسترسی‌ها

برای دیدن دسترسی‌های پرونده‌ها می‌توان از برنامهٔ ls به این صورت استفاده کرد: $ ls -l

در هر خط، نخستین نویسه، نشان دهندهٔ نوع پرونده است. برخی مقدارهایی که این نویسه می‌گیرد:

  • - : نشان‌دهندهٔ پروندهٔ عادی
  • d : نشان دهندهٔ شاخه
  • l : نشان دهندهٔ پیوند
  • s : نشان‌دهندهٔ سوکت
  • b : نشان دهندهٔ بلاک
  • c : نشان‌دهندهٔ نویسه
  • ...

بعد از نخستین نویسه ۹ نویسهٔ بعدی برای نمایش دسترسی‌های پرونده استفاده می‌شود. این نویسه‌ها می‌توانند مقدارهای زیر را داشته باشند:

  • r : نشان‌دهندهٔ دسترسی خواندن (read)
  • w : نشان‌دهندهٔ دسترسی نوشتن (write)
  • x : نشان‌دهندهٔ دسترسی اجرا (execute)
  • - : نشان‌دهندهٔ این است که دسترسی تعیین نشده
  • X : ...
  • s : نشان‌دهندهٔ بیت SUID یا SGID است
  • S : نشان‌دهندهٔ بیت SUID یا SGID است، اما دسترسی اجرایی(x) متناظر تعیین نشده است
  • t : نشان‌دهندهٔ بیت چسبناک(sticky-bit) یا محافظت از حذف است
  • T : نشان‌دهندهٔ بیت چسبناک(sticky-bit) یا محافظت از حذف است، اما بیت اجرایی(x) متناظر تعیین نشده است

بعد از نخستین نویسه بقیهٔ ۹ نویسه به سه گروه سه‌تایی تقسیم می‌شوند. به ترتیب از سمت چپ :

  • سه نویسهٔ نخست نشان‌دهندهٔ دسترسی‌های مالک پرونده یا کاربر(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 باید سه چیز را به ان بگوییم:

  • چه‌کسی : برای چه کسی دسترسی‌ها را تعیین می کنیم.
  • چه‌کار : چه تغییری ایجاد می کنیم؟ آیا ما دسترسی را اضافه یا حذف می کنیم؟
  • چه‌چیز : کدام یک از دسترسی‌ها را تعیین می کنیم؟


مقدار هایی که می‌توانیم برای "چه کسی" استفاده کنیم، عبارتند از:

u : کاربر(User)، به معنی صاحب پرونده یا شاخه.
g : گروه(Group)، به معنی اعضای گروهی است که پرونده به آن تعلق دارد.
o : دیگران(Others)، به معنی افرادی است که توسط دسترسی‌های "u" و "g" اداره نمی شوند.
a : همه(All)، به معنی همه موارد بالا.


مقدار هایی که می‌توانیم برای "چه‌کار" استفاده کنیم، عبارتند از:

+ : علامت به‌اضافه، از این علامت برای اضافه کردن دسترسی به دسترسی های موجود استفاده می‌شود.
- : علامت منهی، از این علامت برای حذف کردن دسترسی استفاده‌ می‌شود.
= : علامت مساوی، از این علامت برای اضافه کردن دسترسی های تعیین شده و حذف بقیه دسترسی ها استفاده می‌شود.


مقدار هایی که می‌توانیم برای "چه‌چیز" استفاده کنیم، عبارتند از:

r : دسترسی خواندن
w : دسترسی نوشتن
x : دسترسی اجرا
s : بیت SUID یا SGID
t : بیت چسبناک(sticky-bit)


برای مثال:

  • u=rwx : نشان می‌دهد که دسترسی های مالک پرونده یا شاخه را به خواندن، نوشتن و اجرا کردن تغیر بده و بقیه مجوز ها را حذف کن.
  • a+x : نشان می‌دهد که دسترسی اجرا را به همه کاربران (مالک، گروه پرونده، دیگران) پرونده یا شاخه اضافه کن.
  • u=rwx,go+rx : نشان می‌دهد که دسترسی های مالک پرونده یا شاخه را به خواندن، نوشتن و اجرا کردن تغیر بده و دسترسی های خواندن و اجرا کردن را به گروه پرونده و دیگران اضافه کن.
  • u+s,go+x : نشان می‌دهد که بیت SUID را به مالک پرونده یا شاخه اضافه کن و دسترسی اجرا کردن را به گروه و دیگران اضافه کن.
بیت SUID یا SGID فقط به دسترسی های مالک یا گروه پرونده قابل اضافه شدن است و به دسترسی های دیگران قابل اضافه شدن نیست.
برای تنظیم این بیت باید مالک فایل یا ابرکاربر باشید.
بیت SUID یا SGID فقط برای برنامهٔ های باینری عمل میکند و برای اسکریپت ها عمل نمیکند.
  • o+t : نشان می‌دهد که بیت چسبناک(sticky-bit) را به پرونده یا شاخه مورد نظر اضافه کن
بیت چسبناک(sticky-bit) فقط به دسترسی های دیگران قابل اضافه کردن است.
برای تنظیم این بیت باید مالک فایل یا ابرکاربر باشید.

تغییر دسترسی ها

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

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

برای مثال،یک پرونده با نام new.txt میسازیم. برای دیدن دسترسی های پرونده مورد نظر از فرمان ls به این صورت استفاده‌ میکنیم:

$ ls -l new.txt

Chmod 2.png

ما میخواهیم مالک پرونده دسترسی‌های خواندن، نوشتن و اجرا داشته باشد و گروه و سایر کاربران فقط دسترسی‌های خواندن و اجرا داشته باشند. ما می توانیم با استفاده از دستور زیر این کار را انجام دهیم:

$ chmod u=rwx,og=rx new.txt

Chmod 3.png

در ادامه ما میخواهیم دسترسی اجرا را از تمام کاربران بگیریم، پس اینگونه عمل میکنید:

$ chmod a-x new.txt

Chmod 4.png


ترجمه لغات

  • شاخه: دایرکتوری یا پوشه - directory
  • دسترسی: مجوز یا اجازه - permission
  • پرونده: فایل - file
  • نویسه: کاراکتر - character
  • پرونده: لینک - link