为什么在我将其从运行时具有权限的组中排除后,Apache 仍然会写入它有权限的文件

为什么在我将其从运行时具有权限的组中排除后,Apache 仍然会写入它有权限的文件

在服务器上,我有一个名为上传其状态如下:

drwx--x--- 12 bob bob 4096 JUL 20 19:07 upload

我使用此文件作为PHP函数move_uploaded_file的第二个参数用于存储上传的文件。

因此,为了获得 Apache 移动文件的权限/tmp致我的上传, 我加阿帕奇鲍勃组,所以它有权限。阿帕奇是运行 apache 的用户。

但如果我排除阿帕奇来自小组鲍勃使用用户模式,我仍然可以上传文件,这意味着阿帕奇仍然具有权限,就像它仍然在组中一样,但显然不是。

仅当我

chmod -R 700 upload

或者每当我

service httpd restart

我不知道我错过了什么。

在我看来,usermod只有重新启动 apache 后才会应用权限更改。

提前谢谢你的帮助。

答案1

这是预期的行为,用户模式命令仅更改账户文件

usermod 命令修改系统帐户文件以反映命令行上指定的更改。

apache 进程在启动时会根据相关账户文件中的信息被授予权限,并会保留这些权限直到重新启动。

相关内容