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

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو
جز
سطر ۱: سطر ۱:
'''chmod''' که مخفف change file mode bits است، فرمانی است برای تغییر [[دسترسی‌ها]]ی یک پرونده یا یک شاخه.
+
[[پرونده:chmod_1.png|500px|left]]
== کاربرد مود ۲۲۲ ==
+
'''chmod''' که مخفف change mode است، فرمانی برای تغییر [[دسترسی‌ها|مجوز های]] یک پرونده یا یک دایرکتوری(پوشه) است.
مود ۲۲۲ که به صاحب پرونده، دیگر کاربران در همان گروه کاربری و به بقیه تنها دسترسی نوشتن می‌دهد،
 
  
می‌تواند به همراه [[chattr]] به کاربران تنها دسترسی اضافه کردن به یک پرونده را بدهد.
+
از این فرمان برای اصلاح اینکه چه کسانی اجازه اجرا و خواندن و نوشتن را در کدام دایرکتوری ها و بر روی کدام فایل ها دارند، استفاده میشود.
 +
دستور '''chmod''' در نگاه اول بسیار پیچیده بنظر میرسد ولی در واقع بسیار ساده و منطقی است.
 +
 
 +
== دیدن مجوز ها ==
 +
برای دیدن مجوز های پرونده یا پوشه ها میتوان از دستور '''[[ls]]''' به این صورت استفاده کرد:
 +
<code dir=ltr>$ ls -l</code>
 +
 
 +
در هر خط اولین کاراکتر نشان دهنده نوع ورودی است. بعضی از مقدار هایی که این کاراکتر میگیرد:
 +
* ''' - ''': نشان دهنده پرونده یا فایل
 +
* ''' d ''': نشان دهنده دایرکتوری یا پوشه
 +
* ''' l ''': نشان دهنده لینک
 +
* ''' s ''': نشان دهنده سوکت
 +
* ''' b ''': نشان دهنده بلوک (پاراتیشن)
 +
* ''' c ''': نشان دهنده کاراکتر
 +
* ''' ... '''
 +
 
 +
بعد از اولین کاراکتر 9 کاراکتر بعدی برای نمایش مجوز های ورودی ها استفاده میشود. 9 کاراکتر بعدی میتوانند مقدار های زیر را داشته باشند:
 +
* ''' r ''': نشان دهنده مجوز خواندن (read)
 +
* ''' w ''': نشان دهنده مجوز نوشتن (write)
 +
* ''' x ''': نشان دهنده مجوز اجرا (execute)
 +
* ''' X ''': ...
 +
* ''' s ''': نشان دهنده بیت '''[[SUID]]''' یا '''[[SGID]]''' است
 +
* ''' S ''': نشان دهنده بیت '''[[SUID]]''' یا '''[[SGID]]''' است، اما مجوز اجرایی('''x''') متناظر تعیین نشده است
 +
* ''' t ''': نشان دهنده بیت چسبناک('''[[sticky-bit]]''') یا محافظت از حذف است
 +
* ''' T ''': نشان دهنده بیت چسبناک('''[[sticky-bit]]''') یا محافظت از حذف است، اما بیت اجرایی('''x''') متناظر تعیین نشده است
 +
 
 +
 
 +
 
 +
 
 +
 
 +
== گزینه ها ==
 +
 
 +
<code dir=ltr>'''-c, --changes'''</code>
 +
: مانند '''verbose''' اما فقط در صورت ایجاد تغییر گزارش می دهید
 +
 
 +
<code dir=ltr>'''-f, --silent, --quiet'''</code>
 +
: بیشتر پیغام های خطا را نادیده میگیرد
 +
 
 +
<code dir=ltr>'''-v, --verbose'''</code>
 +
: برای هر پروسه اطلاعات اضافی را چاپ میکند
 +
 
 +
<code dir=ltr>'''--no-preserve-root'''</code>
 +
: do not treat '/' specially (the default)
 +
 
 +
<code dir=ltr>'''--preserve-root'''</code>
 +
: fail to operate recursively on '/'
 +
 
 +
<code dir=ltr>'''--reference=RFILE'''</code>
 +
: استفاده از مجوز های فایل 'RFILE' به عنوان مرجع (از مجوز های فایل 'RFILE' استفاده میکند)
 +
 
 +
<code dir=ltr>'''-R, --recursive'''</code>
 +
: تغیر همه پرونده ها و دایرکتوری ها به صورت بازگشتی
 +
 
 +
<code dir=ltr>'''--help'''</code>
 +
: راهنما را نمایش می دهد
 +
 
 +
<code dir=ltr>'''--version'''</code>
 +
: نسخه برنامه را نمایش می دهد
 +
 
 +
== طریقه استفاده ==
 +
 
 +
از دستور '''chmod''' میتوان به صورت زیر استفاده کرد:
 +
<!-- https://man7.org/linux/man-pages/man1/chmod.1.html -->
 
<pre>
 
<pre>
chmod 222 logfile
+
chmod [OPTION]... MODE[,MODE]... FILE...
chattr +a logfile
+
chmod [OPTION]... OCTAL-MODE FILE...
 +
chmod [OPTION]... --reference=RFILE FILE...
 
</pre>
 
</pre>
در مثال بالا که باید با [[ابرکاربر]] اجرا شود، ابتدا به پرونده‌ی logfile تنها دسترسی نوشتن می‌دهیم، تا به اینجا کاربران می‌توانند پرونده را از نو بازنویسی کنند یا محتویات جدید به آن اضافه کنند اما نمی‌توانند پرونده را بخوانند.
 
  
اما بعد از اجرای دستور دوم و دادن صفت a(که مخفف append است) به پرونده، کاربران تنها می‌توانند به آن مختویات را اضافه کنند و نمی‌توانند چیزی از آن کم کرده یا آنرا بطور کامل بازنویسی کنند.
 
  
در نتیجه [[مدیر سیستم]] میتواند(در این مثال) کاری کند که کاربران تنها(به معنای دقیق کلمه) log ها را اضافه کنند.
+
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
  
 
[[رده:خط فرمان]]
 
[[رده:خط فرمان]]

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

Chmod 1.png

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

از این فرمان برای اصلاح اینکه چه کسانی اجازه اجرا و خواندن و نوشتن را در کدام دایرکتوری ها و بر روی کدام فایل ها دارند، استفاده میشود. دستور chmod در نگاه اول بسیار پیچیده بنظر میرسد ولی در واقع بسیار ساده و منطقی است.

دیدن مجوز ها

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

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

  • - : نشان دهنده پرونده یا فایل
  • d : نشان دهنده دایرکتوری یا پوشه
  • l : نشان دهنده لینک
  • s : نشان دهنده سوکت
  • b : نشان دهنده بلوک (پاراتیشن)
  • c : نشان دهنده کاراکتر
  • ...

بعد از اولین کاراکتر 9 کاراکتر بعدی برای نمایش مجوز های ورودی ها استفاده میشود. 9 کاراکتر بعدی میتوانند مقدار های زیر را داشته باشند:

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



گزینه ها

-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...