وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید

0 2
زمان لازم برای مطالعه: 4 دقیقه


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

معمولاً کاربری که فایل را ایجاد می کند، حق دسترسی و تغییر مجوزهای فایل را دارد. همچنین root کاربر به طور پیش فرض دارای تمام امتیازات برای دسترسی به هر فایل است روی سیستم.

در این مقاله روش تغییر مجوزهای دایرکتوری به صورت بازگشتی در سیستم عامل لینوکس با استفاده از دو روش مختلف را توضیح خواهیم داد. ابتدا مروری اجمالی از روش مشاهده و تغییر مجوزهای فایل ارائه می دهیم و سپس روش تغییر مجوزها را به صورت بازگشتی مورد بحث قرار می دهیم.

مشاهده مجوزهای فایل فعلی

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

$ ls

به عنوان مثال، اگر ما اجرا کنیم ls-l، یک خروجی مشابه دریافت خواهیم کرد:

مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید

در لیست بالا، اگر اولین کاراکتر یک ردیف با “d” شروع شود، نشان می دهد که یک دایرکتوری است، در حالی که اگر با “-” شروع شود نشان می دهد که یک فایل است. پس از این، 9 کاراکتر بعدی مجوزهای فایل یا دایرکتوری را نشان می دهد. این 9 کاراکتر در واقع در سه مجموعه برای کاربر، گروه و مالک گروه بندی می شوند. علاوه بر این، هر مجموعه شامل سه نوع مجوز است که r، w و x به ترتیب برای مجوزهای “خواندن”، “نوشتن” و “اجرا” هستند.

تغییر مجوزها

در لینوکس برای تغییر مجوزهای یک فایل یا دایرکتوری از دستور chmod استفاده می شود. با این حال، برای تغییر مجوز، باید مالک یا مالک فایل باشید root کاربر.

پیشنهاد می‌کنیم بخوانید:  برای تکرار از طریق یک آرایه، حلقه «For» را بشکنید

نحو عبارت است از:

$ chmod [reference][operator][mode] فایل 1 فایل 2 …

جایی که

  • مرجع: به چه کسی مجوزها اختصاص داده شود، مثلاً u (برای کاربر)، g (برای گروه)، o (برای مالک).
  • عملگر: + (اضافه کردن مجوز)، – (مجوز را حذف کنید)، = (تنها این مجوز را تنظیم کنید)
  • حالت: چه مجوزی برای اختصاص r (برای خواندن)، w (برای نوشتن)، x (برای اجرا)

تغییر مجوزها به صورت بازگشتی با استفاده از -R

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

Chmod به شما اجازه می دهد تا مجوز چندین فایل و زیر شاخه ها را در یک فهرست با استفاده از گزینه –R به صورت زیر تغییر دهید:

$ chmod[reference][operator][mode] فایل…

فرض کنید زیرمجموعه های زیر فهرست دانلودها دارای مجوزهای زیر هستند که در تصویر زیر نشان داده شده است.

مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهیدمجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید

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

مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهیدمجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید

حال اجازه دهید مجوز دایرکتوری والد “files” خود را با اختصاص دادن مجوز نوشتن به صورت زیر به آن تغییر دهیم.

$ chmod u+w فایل ها

جایی که U مخفف “user”، + برای “add” و w برای “نوشتن” است.

پس از اختصاص دادن مجوز نوشتن، “ls –lدستور “، می توانید ببینید که مجوز جدید به دایرکتوری “files” اختصاص داده شده است.

مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهیدمجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید

با این حال، این دستور فقط مجوزها را به دایرکتوری اعمال می کند نه فایل های زیر آن. برای تأیید این مورد، با استفاده از “” به فهرست فایل ها برویدسی دی” فرمان سپس “ls –l” فرمان در تصویر زیر می توانید ببینید که مجوزها تغییر نکرده است.

مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهیدمجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید

اجازه دهید با استفاده از دستور زیر مجوز را به صورت بازگشتی اعمال کنیم:

$ chmod -R u+w فایل ها

این اجازه را نه تنها به دایرکتوری “files” والد بلکه برای فایل های زیر آن نیز اعمال می کند.

مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهیدمجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید

اکنون، برای بررسی اینکه آیا مجوز با موفقیت اعمال شده است، با استفاده از “” به دایرکتوری “files” بروید.سی دیدستور ” را بزنید و سپس ” را اجرا کنیدls –l” فرمان از ورودی زیر می بینید که مجوزها با موفقیت برای همه فایل های زیر دایرکتوری والد اعمال شده است.

پیشنهاد می‌کنیم بخوانید:  حلقه Bash از طریق دایرکتوری ها به صورت بازگشتی

مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهیدمجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید

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

$ chmod700

با استفاده از دستور Find به صورت بازگشتی مجوز را تغییر دهید

هنگامی که chmod با –R برای اعمال مجوز در یک دایرکتوری استفاده می شود، مجوز یکسانی را به همه فایل ها و زیر شاخه های زیر آن اختصاص می دهد. با این حال، گاهی اوقات، ممکن است بخواهید مجوزهای جداگانه ای به فایل ها و دایرکتوری ها بدهید. یک مثال از این می تواند اعمال مجوز اجرا باشد روی دایرکتوری اما نه روی فایل ها به عنوان فایل نیازی به مجوز اجرا ندارند. به طور کلی، مجوزهای زیر به فایل ها و دایرکتوری ها اختصاص داده می شود.

برای دایرکتوری ها: 755 یا drwxr-xr-xx
برای فایل ها: 644 یا -rw-r–r–

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

$ پیدا کردن /مسیر/به/فهرست راهنما -نوع د -اجرایی chmod 755 {} +
$ پیدا کردن /مسیر/به/فهرست راهنما -نوع د -اجرایی chmod تو=rwx،برو=rx {} \;

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

$ پیدا کردن /مسیر/به/فهرست راهنما -نوع f -اجرایی chmod 644 {} +
$ پیدا کردن /مسیر/به/فهرست راهنما -نوع f -اجرایی chmod تو=rw،برو=r {} \;

مطمئن شوید که مجوزها را با مجموعه مجوزهای مورد نیاز خود جایگزین کنید.

بدین ترتیب می توانید مجوزهای دایرکتوری در لینوکس را به صورت بازگشتی تغییر دهید. برای اعمال مجوزهای بازگشتی یکسان به همه فایل ها و زیر شاخه ها، از گزینه –R استفاده کنید، در حالی که برای اعمال مجوزهای بازگشتی به فایل و زیر شاخه ها به طور جداگانه، از دستور Find استفاده کنید.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 13:54:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید