یک اسکریپت بش بنویس که یک مسیر پوشه را به‌عنوان ورودی بگیرد، مالکیت همهٔ فایل‌ها و پوشه‌ها را به کاربر جاری اختصاص دهد، مجوز فایل‌ها را به 640 و مجوز پوشه‌ها را به 750 تنظیم کند و در پایان گزارشی از تعداد فایل‌ها و پوشه‌های تغییر یافته چاپ کند.

3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:20

0.0

برای حل این مسئله از دستورات پایه‌ای chown و chmod به‌همراه find استفاده کنید: با chown -R یا chown برای مالکیت (مثلاً "$(whoami):$(whoami)") و با find -type f -exec chmod 640 {} \; برای فایل‌ها و find -type d -exec chmod 750 {} \; برای پوشه‌ها مجوزها را تنظیم کنید. در اسکریپت ورودی را اعتبارسنجی کنید (وجود پوشه و قابل دسترسی بودن)، برای گزارش می‌توانید پیش و پس از تغییر با find ... | wc -l شمارش انجام دهید و در صورت نیاز از sudo استفاده کنید اگر دسترسی لازم را ندارید؛ برای تست از ls -l و اجرای اسکریپت روی یک پوشه نمونه استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:20
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arman در 221 روز قبل ساعت 13:39

برای پایداری و جلوگیری از خطاهای نام‌های دارای فاصله از -print0 با xargs -0 استفاده کنید. قبل از اجرای کامل روی یک پوشه تست کنید و در صورت نیاز با sudo برای دسترسی‌های کاربر یا مالکیت استفاده کنید. برای گزارش تغییرات، پیش و پس از اجرای script تفاوت تعداد فایل‌ها و پوشه‌ها را با یافت -type f -print0 | wc -l و -type d -print0 | wc -l مقایسه کنید. همچنین به ACLها و محدودیت‌های امنیتی سیستم نگاه کنید، زیرا در برخی محیط‌ها ممکن است مجوزها به طور متفاوتی اعمال شوند.

گزارش

1 پاسخ

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

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