我一直在尝试更改新会话文件的权限。根据{{3}},我需要在php.ini文件的session_save_path配置中更改 mode 。我将其更改为0777,默认值为0600。仍在使用0600权限创建新的会话文件。我已经检查过,正确的php.ini已加载并保存了更改。我已将其配置为:0;0777;/var/lib/php/sessions
(N; MODE; / path)。有人可以向我解释为什么在我将文件配置为0777的情况下仍然创建具有0600权限的文件吗?
文件存储在/var/lib/php/sessions
中,我正在使用Codeigniter。
答案 0 :(得分:0)
/var/lib/php/sessions/
目录通常在其上设置了“粘滞”位-
drwx-wx-wt 2 root root 4096 Oct 15 11:21 /var/lib/php/sessions/
这是通过chmod 1733
完成的。请记住,在目录上使用setuid / setgid / sticky位会影响如何在该目录和任何子目录中创建文件(默认所有者/组和权限),而与系统umask
的值无关,等等。
此页面-http://www.filepermissions.com/articles/sticky-bit-suid-and-sgid-是有关* nix文件权限的3篇文章系列的一部分,非常好。
“粘性位”是文件权限中的一项特殊设置,有助于 限制访问超出普通文件权限所能提供的范围。在 简而言之,粘性位可确保只有文件/目录的所有者是 能够删除或重命名文件。但是应该注意的是 root也可以编辑和删除文件。
在1733
模式下,系统上的其他人无法读取会话数据文件。这是一件好事。
您为什么要让世界可读的会话存储?
编辑-
如果您真的想破坏它,请创建一个具有适当权限的新目录,并更改会话存储路径以使用该目录。请注意,PHP可能会进行内部检查,使其拒绝将会话数据存储在它认为“不安全”的位置,就像SSH拒绝使用带有不安全权限的密钥一样。