当我尝试shell_exec('/home/user/scripts/./script')
时,我收到以下错误:
terminate called after throwing an instance of 'boost::filesystem3::filesystem_error'
what(): boost::filesystem::create_directory: Permission denied: "/.script"
Aborted (core dumped)
shell_exec('whoami')
在我面向网络的php脚本上返回www-data
。
目录和文件的权限完全相同:
-rwxrwxr-x 1 user123 group456 8246 Jun 25 06:10 script
drwxrwxr-x 7 user123 group456 4096 Jul 10 14:54 .
实际上我可以shell_exec('touch /home/user/scripts/test')
并且它会创建没有问题的文件。
$ ls -l /home/user/scripts/test
-rw-r--r-- 1 www-data www-data 0 Jul 10 14:54 test123
这是为每个用户设置我的群组的方式:
$ groups user123
user123 : group456
$ groups www-data
www-data : group456
为什么我收到此错误?
答案 0 :(得分:1)
您正在运行的脚本有拼写错误:它正在尝试在 root 文件夹而不是/.script
(相对路径)中创建文件夹./script
。
答案 1 :(得分:0)
您是否尝试在/home/user/scripts/./script
执行脚本,那么您应该以{{1}}
当你在路径上添加shell_exec('sh /home/user/scripts/script')
时,它的解释会有所不同。
传递./
时 - 您指的是当前目录中的文件名./script
。
此外,您实际上是从您的c程序收到错误,它告诉我们您的系统正在停止apache以获得root权限。您可以script
让apache获得所需的权限。