یک اسکریپت 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 خلاصه‌ای از فایل‌ها/پوشه‌هایی که تغییر کرده‌اند نمایش دهید. توجه کنید که لینک‌های نمادین را به‌طور دلخواه نادیده بگیرید یا با دقت پردازش کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:44
دسته بندی ها: Bash Scripting Bash Scripting for beginner
reyhaneh در 202 روز قبل ساعت 08:40

توجه داشته باشید که اجرای chown -R روی مسیر داده‌شده گاهی مالکیت دایرکتوری پایه را هم تغییر می‌دهد؛ اگر هدف تنها تغییر داخل آن است از find -mindepth 1 استفاده کنید تا دایروری اصلی تغییر نکند. برای ایمن‌سازی ورودی‌ها و پشتیبانی از فایل‌ها با فاصله یا کاراکترهای خاص، از find با -print0 و از xargs -0 یا -exec ... + بهره ببرید. بررسی وجود کاربر و گروه و دسترسی‌های لازم و در صورت نیاز استفاده از sudo از مراحل حیاتی است تا اسکریپت با خطا مواجه نشود. در پایان، ارائهٔ یک خلاصه از تغییرات با استفاده از find -printf یا ls -l کار را برای کاربر روشن می‌کند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری