亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

標(biāo)題重寫為:權(quán)限不足時(shí),上傳的檔案無(wú)法移動(dòng)
P粉210405394
P粉210405394 2023-09-07 23:51:33
0
1
828

我有一個(gè)PHP腳本,我可以透過(guò)它上傳文件,並嘗試將其從/tmp移動(dòng)到test/(相對(duì)路徑,位於我的專案資料夾中,例如/var/www/html/myproject/test將是絕對(duì)路徑)。當(dāng)這種情況發(fā)生時(shí),我會(huì)收到以下錯(cuò)誤。

move_uploaded_file(test/test.csv):無(wú)法開(kāi)啟串流:權(quán)限被拒絕,位於/var/www/html/myproject/import.php的第X行,引用者:http://192.168.1.1/myproject /import2.php

此腳本由apache使用者執(zhí)行,該使用者擁有/test的所有權(quán)(apache擁有者和apache群組都擁有此目錄),具有rwx權(quán)限。

我已經(jīng)檢查了以下內(nèi)容:

  • safe_mode被禁用。
  • open_basedir未設(shè)定。
  • file_uploads已啟用。
  • upload_max_filesize為2MB,檔案大小為~50KB。
  • post_max_size為8MB,我的POST請(qǐng)求與此不接近。
  • 使用絕對(duì)路徑而不是相對(duì)路徑。
  • is_dir("test/")傳回true。
  • is_writable("test/")回傳false。
  • 在php腳本中:列印檔案擁有者(要移動(dòng)的檔案)、資料夾擁有者(test/)、檔案權(quán)限和資料夾權(quán)限。檔案/資料夾擁有者顯示為apache。檔案權(quán)限為600,因此擁有者可以讀取和寫入。資料夾權(quán)限為755,因此擁有者可以讀取、寫入和執(zhí)行。
  • ps -aux | grep apache。將apache錯(cuò)誤日誌中的PID與正在運(yùn)行的進(jìn)程匹配,該進(jìn)程由apache用戶擁??有。因此,這確認(rèn)了該進(jìn)程在apache下運(yùn)行。
  • getcwd()和__DIR__都回傳正確的目錄/var/www/html/myproject。
  • dirname(__FILE__)傳回檔案的正確絕對(duì)路徑
  • 檢查file_exists($_FILES['file']['tmp_name'])回傳true
  • 檢查$_FILES['file']['error'](我要移動(dòng)的檔案)回傳0,上傳沒(méi)有問(wèn)題。
  • 使用is_writable("/tmp")檢查來(lái)源資料夾(/tmp)是否可寫,回傳true。
  • 嘗試在test/上暫時(shí)使用chmod -R 777,仍然顯示權(quán)限被拒絕且不可寫入。
  • 暫時(shí)禁用了防毒/EDR
  • 檢查「test/」的安全上下文。傳回結(jié)果為:「unconfined_u:object_r:httpd_sys_content_t:s0」。這些都不是問(wèn)題(在下面的回覆中有解釋)。
  • 檢查是否安裝了可能阻止行動(dòng)檔案的安全相關(guān)應(yīng)用程式。這些應(yīng)用程式未安裝:AppArmor、grsecurity、Tomoyo Linux和Smack。
  • 在php腳本中使用fopen() / flock()函數(shù)確認(rèn)我要移動(dòng)的檔案沒(méi)有被鎖定。
  • 使用is_uploaded_file()函數(shù)確認(rèn)我正在嘗試移動(dòng)一個(gè)上傳的檔案(在這一點(diǎn)上我已經(jīng)快瘋了,只是嘗試我能想到的任何方法)。當(dāng)然,這回傳true。

P粉210405394
P粉210405394

全部回覆(1)
P粉564192131

move_uploaded_file需要兩個(gè)參數(shù)。 1:你想要上傳的文件 2:放置檔案的絕對(duì)路徑 3:請(qǐng)確保上傳目錄具有適當(dāng)?shù)乃袡?quán)和權(quán)限(注意:如果您使用Apache作為代理,目錄所有權(quán)應(yīng)屬於apache2的使用者:群組)。

示例:move_uploaded_file($_FILES['my_file_field_name']['tmp_name'], "/var/www/html/myproject/test/upload_dir/" . $_FILES['name']['tmp_name']);

閱讀更多:https://www.php.net/manual/pt_BR/function.move-uploaded-file.php

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板