我試圖在我的首選文件夾的子文件夾中使用PHP創建文件。PHP根據新文件的位置創建不同用戶和組的文件
我使用下面的命令:
file_put_contents("/preferred_folder/subfolder/test_A.txt", "test_A");
我收到以下錯誤消息:
Warning: file_put_contents(preferred_folder/subfolder/test_A.txt): failed to open stream: Permission denied in /users/service/dummy_username/code.php on line ###.
我檢查/ preferred_folder /子文件夾的權限/經由膩子,使用以下命令,其中我我以「dummy_username」身份登錄,並收到以下回復:
$ ls -l /preferred_folder/
drwxrwxr-x 7 1234567 1000001 120 Apr 30 13:35 subfolder
針對「其他用戶」的寫入權限未啓用。在另一方面,讓我檢查,我不認識這個用戶或組:
$ groups 1000001
groups: 1000001: No such user
此外,「getent passwds 1234567」不返回任何值(和它的「dummy_username」成功一樣)。這裏是奇怪的地方;我嘗試在另外兩個位置創建一個文件作爲完整性檢查:第一個對「其他用戶」具有寫入權限,第二個是我的腳本在過去幾年中成功創建文件的位置。
file_put_contents("/preferred_folder/test_B.txt", "test_B");
file_put_contents("https://stackoverflow.com/users/service/dummy_username/test_C.txt", "test_C");
在這種情況下,這兩個文件創建成功,但這些文件的用戶和組的不同之處,例如:
$ ls -l /preferred_folder/test_B.txt
-rw-r--r-- 1 ABCDEFG root 5 Aug 30 08:39 /preferred_folder/test_B.txt
$ ls -l /users/service/dummy_username/test_C.txt
-rw-r--r-- 1 dummy_username dummy_group 5 Aug 30 08:39 test_C.txt
我留下了幾個問題:
1 )爲什麼從此腳本創建的文件的用戶和組僅根據文件位置而不同?我預計他們都將被「dummy_username」所有。
2)什麼/誰是用戶「ABCDEFG」?我已驗證「根」組沒有明確包含這樣的用戶。
3)什麼/誰是組「1000001」,爲什麼用戶「1234567」不知道是該組的一部分?
4)最後,除了chmod 777整個preferred_folder及其多級子文件夾之外,是否有適當的建議方法爲我的「dummy_username」授予對預期文件創建的特定權限?
在此先感謝您的幫助。長期訪客;第三次海報。
感謝您的回覆,@BugHunterUK。我想通過將該用戶添加到擁有「/ preferred_folder /子文件夾」(即 - 「1000001」)的組來授予專門用於「dummy_username」的權限。如前所述,dummy_username可以在preferred_folder中創建文件,儘管它有一個奇怪的用戶/組。我如何知道哪個用戶名適合添加到組1000001?此外,您是否可以提供任何洞察,以瞭解爲什麼在preferred_folder中擁有新創建文件的用戶/組與/ users/service/dummy_username /中的不同?我在哪裏可以找到並更改這些設置?謝謝! –
更新:我剛剛發現了[ACL](https://unix.stackexchange.com/questions/115631/getting-new-files-to-inherit-group-permissions-on-linux),它解釋了文件所有權被指定。 –