我很好奇
为什么在Ubuntu中使用cron清理会话文件?
我对此进行了研究,发现有两个链接,说
为了安全起见,”会话保留在root权限下。 因此,PHP垃圾收集器无法清理 过期的会话文件。为了清理此类文件,php具有cron作业, 每30分钟运行一次。”
2. Debian Bug report logs - #267720
Apache有www-data用户,所以我认为PHP模块也正在为www-data用户运行(不确定)。
在这种情况下,PHP如何访问会话目录 哪个拥有root所有者来创建/读取会话文件?
即使apache具有www-data,PHP是否也可以root权限运行 用户?如果PHP以root权限运行,则GC如何无法读取 具有根所有者的会话目录中的会话文件。
或者GC是否以www-data用户运行,PHP是否以root用户运行?
附加内容:
我已经在/ var / lib / php / sessions中检查了创建文件的用户和所有者,并显示了创建会话文件的www-data:www-data。
/ var / lib / php / sessions的权限为 drwx-wx-wt
即它有粘性的“ t”
粘性位:
sticky位是用于保护文件的权限位 在目录中。如果目录设置了粘性位,则文件 只能由文件的所有者(文件的所有者)删除 目录或根目录。此特殊权限可防止用户 删除其他用户的文件。 reference
现在,问题是在哪个用户GC下运行?如果它在www-data下运行,为什么它不能删除会话文件?