۱۳۹۲ آذر ۲۷, چهارشنبه

تغییر حق دسترسی فولدر ها و فایل ها با ssh

معمولا در مواقعی که یک فایل رو wget میکنیم روی سرور و انتقال میدیم روی یکی از یوزر ها نیاز هست که حق دسترسی یا پرمیژن فایل ها و فولدر ها رو تغییر بدیم

این اتفاقا همچنین در مواقعی میفته که فایل زیپ شده یا tar.gz شما روی یکی از هاست یوزر ها اکسترکت میشه و خطاهایی مثلا index.php is writeable و یا خطاهایی مشابه



برای رفع این مشکل باید دونه دونه حق دسترسی فایل ها رو تغییر بدیم که خوب این کار در مواردی که تعداد فایل ها زیاد هست زمان زیادی خواهد گرفت بهترین کار استفاده از دستورات ssh در مواقعی که شما دسترسی به کامند سرور دارید می باشد

دستور زیر :
find /home/username/public_html -type d -exec chmod 755 {} \;

ببینیم چه کاری انجام میده

دستور find که دستور جستجو و پیدا کردن هست در ادامه مسیر جستجو رو مشخص میکنید به جای username نام یوزر مربوط یا هر فولدر دیگه رو که میخواهید جستجو در آن صورت بگیره رو قرار بدید

با استفاده از -type نوع جستجو رو مشخص میکنید مثلاd که همون directory هست به جستجو ی فولدر ها خواهد پرداخت

و با استفاده از -exec مشخص میکنید که چه دستوری رو به هنگام یافتن موارد جستجو انجام بده که در ادامه دستور chmod 755 اورده شده که همون حق دسترسی عادی یک فولدر یا دایرکتوری می باشد

برای فایل ها نیز chmod 644 استفاده میشه که خوب مسلما برای جستجوی فایل ها به جای -type d باید از -type f استفاده بشه یعنی به این صورت :
find /home/username/public_html -type f -exec chmod 644 {} \;

همچینین اگر میخواهید uid و gid رو نیز تغییر بدید به جای chmod 644 از دستور chown username:username میتونید استفاده کنید
 find /home/user/public_html/ -fidthisuser nobody -exec chown user:user {} \;

به جای user خوب کاربری هاستی که میخواهید تغییر دهید را قرار دهید و به جای findthisuser شماره UID و یا یوزری رو قرار دهید که میخواهید آنها توسط دستور پیدا شده و تغییر یابند

همچنین در انتهای دستورات {} \; فراموش نشود

هیچ نظری موجود نیست:

ارسال یک نظر