View Single Post
ישן 16-10-08, 16:41   # 4
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

עכשיו כשחשבתי על זה בראש צלול,
בוא נתבונן רגע בתמונה הזאת:

יש לך תיקיה:
קוד:
/home/user
התקיה שייכת ל user:group
על התיקיה הזאת יש הרשאה:700,
rwx למשתמש, וכלום לקבוצה וכלום לאחרים.

עכשיו הסקריפט שלך, רץ תחת apache כניראה, אחרת למה ה safe mode?
ולכן מקבל את ההרשאות של apache, כלומר היוזר www:www (או whatever).

ולכן הסקריפט שלך מקבל מהמערכת הפעלה גישה נדחתה, כי אין ל apache הרשאות כתיבה לשם.

רעיון מאוד גרוע: לתת 777 לתיקיה שבתוכה אתה רוצה לייצור תיקיות עם הסקריפט שלך, ואז זה יעבוד.

הנה דוגמא על אחסון שיש לו safe_mode:
דרך FTP:
קוד:
ftp> put safe_dir.php
local: safe_dir.php remote: safe_dir.php
229 Extended Passive mode OK (|||20676|)
150 Accepted data connection
100% |*************************************|   170     395.27 KB/s    00:00 ETA
226-File successfully transferred
226 0.161 seconds (measured here), 1.03 Kbytes per second
170 bytes sent in 00:00 (1.00 KB/s)
ftp> mkdir test_dir
257 "test_dir" : The directory was successfully created
ftp> chmod 777 test_dir
200 Permissions changed on test_dir
ftp> quit
221-Goodbye. You uploaded 1 and downloaded 0 kbytes.
הקובץ PHP:
קוד:
<?php
$where_create = "test_dir/";
$dir = "safe_mode_mkdir";
var_dump( ini_get('safe_mode') );

if (mkdir($where_create . $dir))
        echo 'Success';
else echo 'Failure';
?>
הפלט:
קוד:
string(1) "1" Success
תוצאה:
קוד:
ftp> ls test_dir
229 Extended Passive mode OK (|||39931|)
150 Accepted data connection
drwxr-xr-x    2 81       81            512 Oct 16 15:31 safe_mode_mkdir
226-Options: -l
226 1 matches total
ftp>
שים לב ל81 81, שזה היוזר\קבוצה של apache.
__________________
FreeBSD, a *nix operating system
  Reply With Quote