linux系统下的权限管理模式,777表示所有用户都具有对该文件夹的完整权限。windows不要考虑这个问题。
有疑问请追问,没有请采纳首先,fopen不是“写入文件”。
设777是文件系统的用户权限。php打开文件,除了受文件系统的限制,还受apache和php本身安全性限制。例如,apache限定了访问权限只限于/>
都是windows服务器了,就不是linux权限777的那一套了,就是你日常电脑上的右键查看文件夹属性而已,建立一个everyone分组,然后所有权限都打上勾,跟windows的文件共享差不多
chmod('f',777)以及chmod('f',744)都是错的,这些授权方式的结果是什么,你要慢慢去推算,不是一下能说出来的。赋予所有权限的语句是:
chmod('f',0777);
注意和你的区别:前面多了一个0,有一个0才表示是8进制,才是正确的授权,不相信的话,你测试一下下面的PHP:
<php
echo 0777;
>
看看输出的是511,也就是要chmod('f',511)才是授予所有的权限。一般都是由于新建用户权限不够导致。Linux 非root用户不能创建目录的解决办法:有些时候安装应用,需要新建一个用户,用户建完之后,发现在常见的目录(/home)下面不能建立目录,必须求助于root用户,建立完毕,例如建立一个目录ubsadm。 这个时候/home/ubsadm 目录存在。切换到应用用户(例如为:ubsadm) 这个时候主目录应该为/home/ubsadm,发现用touch、mkdir等命令无法创建文件/文件夹。 很头疼。这个时候需要看下ubsadm目录的属性:发现目录的属主和组都是root 这个时候要使用root用户下的chown命令来改变属组。chown -R ubsadm:users /home/ubsadm这个时候注意,请尽量不要使用sudo命令提权来执行,虽然可能成功,但是对管理会造成混乱。也不要试图使用usermod命令去改变ubsadm组为root执行完毕之后,使用ubsadm登陆,即可实现创建用户成功。fclose($fid);
readfile($fid);
这两行顺序调换一下试试
另外,你的fopen参数不能用wb,既然你以只写方式打开,当然没有读权限~~
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。用 chmod() 。
// 所有者可读写,其他人没有任何权限
chmod("testtxt",0600);
// 所有者可读写,其他人可读
chmod("testtxt",0644);
// 所有者有所有权限,其他所有人可读和执行
chmod("testtxt",0755);
// 所有者有所有权限,所有者所在的组可读
chmod("testtxt",0740);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)