PDA

View Full Version : حرفه ای: ایجاد دایرکتوری در php



minashij
یک شنبه 01 تیر 1393, 22:22 عصر
با دستور زیر یک دایرکتوری ایجاد می کنم روی هاست، مجوز 777 میدم اما مجوز 655 میگیرم.


if (is_dir($targetdir)) rmdir_recursive ( $targetdir); mkdir($targetdir, 0777);

چکار کنم تا مجوز 777 بگیرم؟

MMSHFE
یک شنبه 01 تیر 1393, 22:28 عصر
بهتره بعدش با دستور shell_exec و اجرای chmod خود سرور مجوز رو تغییر بدین.

minashij
دوشنبه 02 تیر 1393, 11:11 صبح
بهتره بعدش با دستور shell_exec و اجرای chmod خود سرور مجوز رو تغییر بدین.

خیلی ممنون، با دستور
chmod فولدر ایجاد شده مجوز 777 گرفت اما همچنان محتویات درون فولدر مجوز 755 میگیرن.

MMSHFE
دوشنبه 02 تیر 1393, 11:18 صبح
خوب محتوای پوشه بطور پیشفرض مجوز 755 میگیره و موقع ایجاد دوباره باید برای هرکدوم مجوز 777 رو بدین. البته 777 خیلی بده چون مجوز اجرا هم داره و اگه شل آپلود بشه یا ویروس، به راحتی قابل اجراست.

minashij
دوشنبه 02 تیر 1393, 11:49 صبح
خوب محتوای پوشه بطور پیشفرض مجوز 755 میگیره و موقع ایجاد دوباره باید برای هرکدوم مجوز 777 رو بدین. البته 777 خیلی بده چون مجوز اجرا هم داره و اگه شل آپلود بشه یا ویروس، به راحتی قابل اجراست.

مشکل اینجاست که میخوام این فولدر ایجاد شده رو از طریق ftp پاک کنم اما نمیشه.

MMSHFE
دوشنبه 02 تیر 1393, 11:54 صبح
باید مالک پوشه رو به کاربر ftp موردنظر تغییر بدین. کلاً نیاز پروژه شما خیلی عجیبه! معمولاً پوشه رو توسط اسکریپت نمیسازن و یکبار یک ساختار منظم برای فایلها و پوشه ها میگذارن و همیشه با همون کار میکنن.

minashij
دوشنبه 02 تیر 1393, 11:57 صبح
در واقع من فایل zip شده ای رو با دستور ZipArchive اکسترکت می کنم و مجوز دایرکتوری که فایل در آنجا اکسترکت میشه رو 777 گذاشتم. حالا فایل ایجاد شده قابل حذف از طریق Ftp نیست.

MMSHFE
دوشنبه 02 تیر 1393, 11:58 صبح
خوب شما باید همونطور که گفتم یا با chmod 777 * مجوز همه کار رو به همه افراد بدین و یا اینکه با chown مالک فایلهای ایجاد شده رو به کاربر FTP تغییر بدین.

minashij
دوشنبه 02 تیر 1393, 12:14 عصر
میشه مالک هم ftp باشه و هم از طریق اسکریپت بشه فایل ها رو پاک کرد؟ چون الان با دستور rmdir_recursive میتونم فایل ها رو با اسکریپت پاک کنم اما با ftp نمیتونم. میخوام امکانش باشه از هر دو طریق بشه فایل ها رو پاک کرد.

MMSHFE
دوشنبه 02 تیر 1393, 12:22 عصر
باید امتحان کنید. البته مجوز 777 قاعدتاً هر کاری رو به هر کسی اجازه میده. بهتره با پشتیبانی سرورتون صحبت کنید.

emadrezvani
دوشنبه 02 تیر 1393, 13:09 عصر
سلام. مالک/گروه فایل خارج کنند از زیپ باید با مالک/گروه پوشه ftp شما یکی باشد. در غیر این صورت پوشه ftp شما باید سطح دسترسی 777 داشته باشه که اصلا توصیه نمی کنم از این روش استفاده کنید.
پاک کردن یک پوشه منوط به داشتن دسترسی در پوشه قبل هست.

Tarragon
دوشنبه 02 تیر 1393, 13:20 عصر
با سلام
اگر آخر مسیر -R بزاری درست می شه.

CHMOD 0777 /path/to/directory/ -R

minashij
دوشنبه 02 تیر 1393, 14:38 عصر
خروجی تابع fileowner مقدار 101 و جزئیات زیر رو در پی داره:

Array ( [name] => apache [passwd] => x [uid] => 101 [gid] => 501 [gecos] => [dir] => /var/www [shell] => /bin/false )
و تایع chown مقدار operation not permitted رو بر میگردونه، چه کاری باید انجام بدم؟

minashij
دوشنبه 02 تیر 1393, 14:39 عصر
با سلام
اگر آخر مسیر -R بزاری درست می شه.

CHMOD 0777 /path/to/directory/ -R
از طریق شل نمیخوام انجام بدم، فقط از طریق اسکریپ php