یک اسکریپت Bash بنویسید که مسیر یک دایرکتوری را بهعنوان ورودی بگیرد، برای همه فایلها و پوشههای داخل آن مالک را به کاربر "backup" و گروه را به "staff" تغییر دهد، مجوز پوشهها را به 750 و فایلها را به 640 تنظیم کند و در پایان خلاصهای از تغییرات انجامشده نمایش دهد.
3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:44 0.0
برای حل این سؤال از دستورات استاندارد خط فرمان مثل chown و chmod و ابزار find استفاده کنید؛ مثلاً از chown -R برای تغییر مالکیت بهطور بازگشتی یا از find -type d برای پیدا کردن دایرکتوریها و find -type f برای فایلها و سپس اجرای chmod مناسب (مثلاً chmod 750 برای دایرکتوریها و chmod 640 برای فایلها). در اسکریپت ورودی را بررسی کنید (وجود مسیر، دسترسیها و اینکه کاربر و گروه وجود دارند)، در صورت نیاز از sudo استفاده کنید و در پایان با ls -l یا find -printf خلاصهای از فایلها/پوشههایی که تغییر کردهاند نمایش دهید. توجه کنید که لینکهای نمادین را بهطور دلخواه نادیده بگیرید یا با دقت پردازش کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
توجه داشته باشید که اجرای chown -R روی مسیر دادهشده گاهی مالکیت دایرکتوری پایه را هم تغییر میدهد؛ اگر هدف تنها تغییر داخل آن است از find -mindepth 1 استفاده کنید تا دایروری اصلی تغییر نکند. برای ایمنسازی ورودیها و پشتیبانی از فایلها با فاصله یا کاراکترهای خاص، از find با -print0 و از xargs -0 یا -exec ... + بهره ببرید. بررسی وجود کاربر و گروه و دسترسیهای لازم و در صورت نیاز استفاده از sudo از مراحل حیاتی است تا اسکریپت با خطا مواجه نشود. در پایان، ارائهٔ یک خلاصه از تغییرات با استفاده از find -printf یا ls -l کار را برای کاربر روشن میکند.
گزارش