PHP会话模式保持使用0600权限



我一直在尝试更改新会话文件的权限。根据此页面,我需要更改php.ini文件中session_save_path配置中的模式。我已将其更改为0777,默认值为0600。仍在使用0600权限创建新的会话文件。我已经检查过了,加载了正确的php.ini并保存了更改。我将其配置为:0;0777;/var/lib/php/sessions(N;MODE;/path(。有人能向我解释为什么这些文件仍然是用0600权限创建的,而我已经将其配置为0777吗?

这些文件存储在/var/lib/php/sessions中,我正在使用Codeigniter。

/var/lib/php/sessions/目录上通常设置有"粘性"位-

drwx-wx-wt 2 root root 4096 Oct 15 11:21 /var/lib/php/sessions/

这是通过chmod 1733完成的。请记住,在目录上使用setuid/setgid/stick位会影响在该目录和任何子目录中创建文件的方式(默认所有者/组和权限(,而不考虑系统umask值等。

从本页-http://www.filepermissions.com/articles/sticky-bit-suid-and-sgid-这是关于*nix文件权限的3篇文章系列的一部分,非常好。

Sticky Bit是文件权限内的一个特殊设置,有助于限制超出正常文件权限范围的访问。在里面简而言之,Sticky Bit确保只有文件/目录的所有者能够删除或重命名文件。但是应该注意的是root还可以编辑和删除文件。

1733模式下,系统上的其他人无法读取会话数据文件。这是一件好事。

为什么要使用世界可读的会话存储?

编辑-

如果您真的想破坏它,请创建一个具有适当权限的新目录,并更改会话存储路径以使用该目录。请注意,PHP中可能存在一个内部检查,它将拒绝将会话数据存储在它认为"不安全"的地方,就像SSH拒绝使用具有不安全权限的密钥一样。

最新更新