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

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو
(روش کار)
(ویراستاری)
سطر ۱: سطر ۱:
 
[[پرونده: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''' به این شکل استفاده کرد:
+
می‌توان از برنامهٔ '''chmod''' به این شکل استفاده کرد:
 
<!-- https://man7.org/linux/man-pages/man1/chmod.1.html -->
 
<!-- https://man7.org/linux/man-pages/man1/chmod.1.html -->
 
<pre>
 
<pre>
سطر ۸۳: سطر ۸۳:
 
<!-- https://www.howtogeek.com/437958/how-to-use-the-chmod-command-on-linux -->
 
<!-- https://www.howtogeek.com/437958/how-to-use-the-chmod-command-on-linux -->
 
برای استفاده از '''chmod''' باید سه چیز را به ان بگوییم:
 
برای استفاده از '''chmod''' باید سه چیز را به ان بگوییم:
*''' چه‌کسی ''': برای چه کسی مجوزها را تعیین می کنیم.
+
*''' چه‌کسی ''': برای چه کسی دسترسی‌ها را تعیین می کنیم.
*''' چه‌کار ''': چه تغییری ایجاد می کنیم؟ آیا ما مجوز را اضافه یا حذف می کنیم؟
+
*''' چه‌کار ''': چه تغییری ایجاد می کنیم؟ آیا ما دسترسی را اضافه یا حذف می کنیم؟
*''' چه‌چیز ''': کدام یک از مجوزها را تعیین می کنیم؟
+
*''' چه‌چیز ''': کدام یک از دسترسی‌ها را تعیین می کنیم؟
 
<br>
 
<br>
مقدار هایی که میتوانیم برای "'''چه کسی'''" استفاده کنیم، عبارتند از:
+
مقدار هایی که می‌توانیم برای "'''چه کسی'''" استفاده کنیم، عبارتند از:
:''' u ''': کاربر('''User''')، به معنی صاحب پرونده یا پوشه.
+
:''' u ''': کاربر('''User''')، به معنی صاحب پرونده یا شاخه.
 
:''' g ''': گروه('''Group''')، به معنی اعضای گروهی است که پرونده به آن تعلق دارد.
 
:''' g ''': گروه('''Group''')، به معنی اعضای گروهی است که پرونده به آن تعلق دارد.
:''' o ''': دیگران('''Others''')، به معنی افرادی است که توسط مجوزهای "'''u'''" و "'''g'''" اداره نمی شوند.
+
:''' o ''': دیگران('''Others''')، به معنی افرادی است که توسط دسترسی‌های "'''u'''" و "'''g'''" اداره نمی شوند.
 
:''' a ''': همه('''All''')، به معنی همه موارد بالا.
 
:''' a ''': همه('''All''')، به معنی همه موارد بالا.
 
<br>
 
<br>
مقدار هایی که میتوانیم برای "'''چه‌کار'''" استفاده کنیم، عبارتند از:
+
مقدار هایی که می‌توانیم برای "'''چه‌کار'''" استفاده کنیم، عبارتند از:
:''' + ''': علامت به‌اضافه، از این علامت برای اضافه کردن مجوز به مجوز های موجود استفاده میشود.
+
:''' + ''': علامت به‌اضافه، از این علامت برای اضافه کردن دسترسی به دسترسی های موجود استفاده می‌شود.
:''' - ''': علامت منهی، از این علامت برای حذف کردن مجوز استفاده‌ میشود.
+
:''' - ''': علامت منهی، از این علامت برای حذف کردن دسترسی استفاده‌ می‌شود.
:''' = ''': علامت مساوی، از این علامت برای اضافه کردن مجوز های تعیین شده و حذف بقیه مجوز ها استفاده میشود.
+
:''' = ''': علامت مساوی، از این علامت برای اضافه کردن دسترسی های تعیین شده و حذف بقیه دسترسی ها استفاده می‌شود.
 
<br>
 
<br>
مقدار هایی که میتوانیم برای "'''چه‌چیز'''" استفاده کنیم، عبارتند از:
+
مقدار هایی که می‌توانیم برای "'''چه‌چیز'''" استفاده کنیم، عبارتند از:
:''' r ''': مجوز خواندن
+
:''' r ''': دسترسی خواندن
:''' w ''': مجوز نوشتن
+
:''' w ''': دسترسی نوشتن
:''' x ''': مجوز اجرا
+
:''' x ''': دسترسی اجرا
 
:''' s ''': بیت '''[[SUID]]''' یا '''[[SGID]]'''
 
:''' s ''': بیت '''[[SUID]]''' یا '''[[SGID]]'''
 
:''' t ''': بیت چسبناک('''[[sticky-bit]]''')
 
:''' t ''': بیت چسبناک('''[[sticky-bit]]''')

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

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 به این شکل استفاده کرد:

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

برای استفاده از chmod باید سه چیز را به ان بگوییم:

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


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

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


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

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


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

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