【发布时间】:2017-08-31 03:23:47
【问题描述】:
我正在尝试在我的首选文件夹的子文件夹中使用 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 ###.
我通过 PuTTY 使用以下命令检查了 /preferred_folder/subfolder/ 的权限,我以“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("/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”是什么/谁?我已经验证“root”组没有明确包含这样的用户。
3) 组“1000001”是什么/谁,为什么用户“1234567”也不知道是该组的一部分?
4) 最后,除了 chmod 777'ing 整个首选文件夹及其多个级别的子文件夹之外,是否有适当且建议的方法为我的“dummy_username”授予特定权限以创建预期的文件?
提前感谢您的帮助。长期访客;第三次海报。
【问题讨论】:
标签: php file-permissions