PHP文件操作
我尝试取消链接以删除文本文件,但也失败了 当我手动删除文本文件,然后将文件权限设置为777时,上述代码起作用PHP文件操作,php,file,fopen,fwrite,chmod,Php,File,Fopen,Fwrite,Chmod,我尝试取消链接以删除文本文件,但也失败了 当我手动删除文本文件,然后将文件权限设置为777时,上述代码起作用 任何帮助都应该感谢 该脚本由root所有,仅可由所有者写入。这意味着除了root之外,没有其他人可以更改其权限。您必须sudo chown或sudo chmod并手动更改文件的所有者或权限。如果您对该文件或其目录没有足够的权限开始,则无法chmod文件。事先通过FTP/SSH执行此操作。另外,为了简洁起见,file\u put\u contents()。您的Web服务器可能不是以root
任何帮助都应该感谢 该脚本由
root
所有,仅可由所有者写入。这意味着除了root
之外,没有其他人可以更改其权限。您必须sudo chown
或sudo chmod
并手动更改文件的所有者或权限。如果您对该文件或其目录没有足够的权限开始,则无法chmod
文件。事先通过FTP/SSH执行此操作。另外,为了简洁起见,file\u put\u contents()
。您的Web服务器可能不是以root用户身份运行的,root用户是唯一具有写入权限的用户。为什么要将密码明文存储在txt文件中?如果手动删除该文件,然后运行此脚本,谁对password.txt有权限?@landons实际上脚本所有者并不重要。PHP必须在命令行上以root用户身份运行,或者apache必须在root用户下运行才能写入文件。脚本所有者与脚本权限或运行脚本的帐户无关。@landons我假设PHP不是以root身份运行的。这太疯狂了。我误解了你说的“脚本归root所有”
<?
if(isset($_POST['Submit']))
{
$password=$_POST['newpwd'];
if(!empty($password))
{
$old_file = "password.txt";
chmod($old_file,0777);
$fh = fopen($old_file, 'w') or die("Can't open file");
fwrite($fh,$password);
fclose($fh);
header("location:index.php");
}
else
{
echo "Please enter a valid password!";
}
}
?>
-rwxr-xr-x 1 root root 4 Mar 5 13:55 password.txt