از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
مجوزهای فایل را به صورت بازگشتی لینوکس تغییر دهید
سرفصلهای مطلب
لینوکس مانند همه سیستم عامل های دیگر یک سیستم عامل چند کاربره است که چندین کاربر همزمان می توانند به آن دسترسی داشته باشند. بنابراین، برای مدیران بسیار مهم است که مجموعه مناسبی از مجوزها را به منظور جلوگیری از دسترسی غیرمجاز و پیکربندی نادرست اعمال کنند. مجوزها مشخص می کند که چه کسی می تواند به فایل های ذخیره شده در یک سیستم چند کاربره دسترسی داشته باشد و آنها را تغییر دهد. لینوکس انعطاف پذیری و کنترل گرانول بیشتری را در اختیار کاربران قرار می دهد روی مجوزهای دسترسی سیستم های فایل آن
معمولاً کاربری که فایل را ایجاد می کند، حق دسترسی و تغییر مجوزهای فایل را دارد. همچنین root کاربر به طور پیش فرض دارای تمام امتیازات برای دسترسی به هر فایل است روی سیستم.
در این مقاله روش تغییر مجوزهای دایرکتوری به صورت بازگشتی در سیستم عامل لینوکس با استفاده از دو روش مختلف را توضیح خواهیم داد. ابتدا مروری اجمالی از روش مشاهده و تغییر مجوزهای فایل ارائه می دهیم و سپس روش تغییر مجوزها را به صورت بازگشتی مورد بحث قرار می دهیم.
مشاهده مجوزهای فایل فعلی
برای مشاهده مجوزهای فعلی یک فایل یا یک فهرست، دستور زیر را در ترمینال خود اجرا کنید:
به عنوان مثال، اگر ما اجرا کنیم ls-l، یک خروجی مشابه دریافت خواهیم کرد:
در لیست بالا، اگر اولین کاراکتر یک ردیف با “d” شروع شود، نشان می دهد که یک دایرکتوری است، در حالی که اگر با “-” شروع شود نشان می دهد که یک فایل است. پس از این، 9 کاراکتر بعدی مجوزهای فایل یا دایرکتوری را نشان می دهد. این 9 کاراکتر در واقع در سه مجموعه برای کاربر، گروه و مالک گروه بندی می شوند. علاوه بر این، هر مجموعه شامل سه نوع مجوز است که r، w و x به ترتیب برای مجوزهای “خواندن”، “نوشتن” و “اجرا” هستند.
تغییر مجوزها
در لینوکس برای تغییر مجوزهای یک فایل یا دایرکتوری از دستور chmod استفاده می شود. با این حال، برای تغییر مجوز، باید مالک یا مالک فایل باشید root کاربر.
نحو عبارت است از:
جایی که
- مرجع: به چه کسی مجوزها اختصاص داده شود، مثلاً u (برای کاربر)، g (برای گروه)، o (برای مالک).
- عملگر: + (اضافه کردن مجوز)، – (مجوز را حذف کنید)، = (تنها این مجوز را تنظیم کنید)
- حالت: چه مجوزی برای اختصاص r (برای خواندن)، w (برای نوشتن)، x (برای اجرا)
تغییر مجوزها به صورت بازگشتی با استفاده از -R
شاید متوجه شده باشید که اگر مجوزها را از طریق دستور chmod بالا اعمال کنید، این مجوزها فقط برای فایل یا دایرکتوری مشخص شده در دستور اعمال می شود. برای زیر شاخه ها یا فایل های داخل دایرکتوری اعمال نمی شود.
Chmod به شما اجازه می دهد تا مجوز چندین فایل و زیر شاخه ها را در یک فهرست با استفاده از گزینه –R به صورت زیر تغییر دهید:
فرض کنید زیرمجموعه های زیر فهرست دانلودها دارای مجوزهای زیر هستند که در تصویر زیر نشان داده شده است.
اگر یکی از زیر شاخههای فایلهای نامگذاری شده را مشاهده کنیم، حاوی فایلهایی با مجوزهای زیر است.
حال اجازه دهید مجوز دایرکتوری والد “files” خود را با اختصاص دادن مجوز نوشتن به صورت زیر به آن تغییر دهیم.
جایی که U مخفف “user”، + برای “add” و w برای “نوشتن” است.
پس از اختصاص دادن مجوز نوشتن، “ls –lدستور “، می توانید ببینید که مجوز جدید به دایرکتوری “files” اختصاص داده شده است.
با این حال، این دستور فقط مجوزها را به دایرکتوری اعمال می کند نه فایل های زیر آن. برای تأیید این مورد، با استفاده از “” به فهرست فایل ها برویدسی دی” فرمان سپس “ls –l” فرمان در تصویر زیر می توانید ببینید که مجوزها تغییر نکرده است.
اجازه دهید با استفاده از دستور زیر مجوز را به صورت بازگشتی اعمال کنیم:
این اجازه را نه تنها به دایرکتوری “files” والد بلکه برای فایل های زیر آن نیز اعمال می کند.
اکنون، برای بررسی اینکه آیا مجوز با موفقیت اعمال شده است، با استفاده از “” به دایرکتوری “files” بروید.سی دیدستور ” را بزنید و سپس ” را اجرا کنیدls –l” فرمان از ورودی زیر می بینید که مجوزها با موفقیت برای همه فایل های زیر دایرکتوری والد اعمال شده است.
به همین ترتیب، شما همچنین می توانید به صورت بازگشتی مجوزها را به صورت مطلق اختصاص دهید. به عنوان مثال، برای اختصاص مجوز خواندن، نوشتن و اجرا فقط به کاربر، می توان از دستور زیر استفاده کرد:
با استفاده از دستور Find به صورت بازگشتی مجوز را تغییر دهید
هنگامی که chmod با –R برای اعمال مجوز در یک دایرکتوری استفاده می شود، مجوز یکسانی را به همه فایل ها و زیر شاخه های زیر آن اختصاص می دهد. با این حال، گاهی اوقات، ممکن است بخواهید مجوزهای جداگانه ای به فایل ها و دایرکتوری ها بدهید. یک مثال از این می تواند اعمال مجوز اجرا باشد روی دایرکتوری اما نه روی فایل ها به عنوان فایل نیازی به مجوز اجرا ندارند. به طور کلی، مجوزهای زیر به فایل ها و دایرکتوری ها اختصاص داده می شود.
برای فایل ها: 644 یا -rw-r–r–
اگر چنین است، برای اختصاص دادن مجوز بازگشتی به فهرستها، از یکی از شکلهای مطلق یا نمادین استفاده کنید:
$ پیدا کردن /مسیر/به/فهرست راهنما -نوع د -اجرایی chmod تو=rwx،برو=rx {} \;
در حالی که برای اختصاص دادن مجوزهای بازگشتی به فایل ها، از یکی از فرم های مطلق یا نمادین استفاده کنید:
$ پیدا کردن /مسیر/به/فهرست راهنما -نوع f -اجرایی chmod تو=rw،برو=r {} \;
مطمئن شوید که مجوزها را با مجموعه مجوزهای مورد نیاز خود جایگزین کنید.
بدین ترتیب می توانید مجوزهای دایرکتوری در لینوکس را به صورت بازگشتی تغییر دهید. برای اعمال مجوزهای بازگشتی یکسان به همه فایل ها و زیر شاخه ها، از گزینه –R استفاده کنید، در حالی که برای اعمال مجوزهای بازگشتی به فایل و زیر شاخه ها به طور جداگانه، از دستور Find استفاده کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 13:54:03