在我的 Centos 8 服务器上,下面的代码将字符串
test string
写入文件 /test/test_file.txt
并且完美运行。
shell_exec("sudo echo 'test string' > /test/test_file.txt 2>&1");
但是,当我尝试在
/
或 /etc
等目录上执行此操作时,文件永远不会创建。所以我去了visudo
并添加了这个:
apache ALL=(ALL) NOPASSWD:ALL
但是我仍然无法写入像
/
或/etc
这样的目录。我有什么遗漏的吗?
我需要使用 PHP 来创建这个文件。我也尝试过使用
file_put_contents
,但它也不起作用。
我不明白为什么有人想这样做但是....
调试此问题。
第 1 步暂时禁用 SELinux
sudo setenforce 0
第2步检查PHP用户:
<?php echo exec('whoami'); ?>
步骤 3 仔细检查 sudo 权限
<?php echo shell_exec('sudo ls /'); ?>