یک اسکریپت بش بنویسید که مالکیت یک دایرکتوری و تمام زیرمجموعه‌های آن را به یک کاربر و گروه مشخص تغییر دهد و به‌صورت بازگشتی برای همه‌ی پوشه‌ها مجوز 755 و برای همه‌ی فایل‌ها مجوز 644 را تنظیم کند.

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

0.0

برای حل این مسئله از دستورات استاندارد لینوکسی مثل chown و chmod استفاده کنید؛ برای تغییر مالکیت به‌صورت بازگشتی chown -R user:group /path، و برای تنظیم مجوزها به‌صورت جداگانه برای پوشه‌ها و فایل‌ها از find استفاده کنید: find /path -type d -exec chmod 755 {} \; و find /path -type f -exec chmod 644 {} \;. در اسکریپت ورودی‌ها (کاربر، گروه و مسیر) را پارس کنید، وجود دایرکتوری را با test بررسی کنید، و در صورت نیاز از sudo استفاده کنید؛ در پایان با ls -lR /path صحت تغییرات را بررسی کنید. نکته‌ها: از chmod -R استفاده نکنید اگر می‌خواهید فایل‌ها و پوشه‌ها مجوزهای متفاوت داشته باشند و قبل از اجرای اسکریپت روی مسیرهای حساس، از پشتیبان‌گیری استفاده کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:59
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arash در 220 روز قبل ساعت 11:17

این کار را می‌توان با chown -R و استفاده از find برای تفکیک مجوزهای پوشه‌ها و فایل‌ها انجام داد؛ اما قبل از اجرا حتماً وجود مسیر هدف و دسترسی‌های لازم را با test -d بررسی کنید. برای جلوگیری از تغییر ناخواسته لینک‌ها و نام فایل‌ها، به‌جای chmod -R از روش تفکیک فایل‌ها و پوشه‌ها استفاده کنید و در صورت نیاز از sudo بهره ببرید. پس از اجرا، صحت تغییرات را با ls -lR /path بررسی کنید و از داشتن پشتیبان قبل از اجرا مطمئن شوید.

گزارش

1 پاسخ

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

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