我正在为文件设置 444 权限,但我仍然可以重命名文件。
我尝试通过 php 使用 rename() 函数并在终端中使用 mv 命令。
我列出了我的文件,它显示为 -r--r--r-- 1
所以我的问题是,重命名文件不需要文件权限。我认为这存在安全隐患,因为没有权限的人可能会更改我所有文件的名称并破坏我的系统。
答案1
重命名是在目录级别进行的。如果用户对目录有写权限,他们可以重命名该目录中的文件,即使他们本身无权访问这些文件。
例如文件名存储在目录“file”中。这就是硬链接的实现方式,允许一个文件有多个与之关联的文件名。
换句话说,这是按预期进行的,并且不是一个“安全问题”。
答案2
重命名文件会更改目录,而不会更改文件本身。请w
从目录中删除权限以防止这种情况发生。