我创建了一个包含几个文件夹列表的 Intranet,以允许用户下载文件。
但我定义了对文件夹的安全访问。每个用户都可以访问特定文件夹。
在我的 Intranet 中,我想验证文件夹是否可由特定用户(Windows 会话的用户)写入。我使用了函数 is_writable() 但此函数验证全局 chmod 而不是用户的。
你知道一个允许它在 PHP 中使用的函数吗?
谢谢 !
全局用户是指运行 webserver / fastcgi 包装器的用户。
由于所有用户访问相同的脚本但不同的文件夹,这不应该在文件系统级别实现。
唯一合适的解决方案是在数据库表中指定权限并检查访问。
实体用户
实体文件夹
关系实体 User_Has_Permission_On_Folder
User Has_Permission Folder
X read A
Y read+write A
Z read+write B
X read B
...
我不知道您的功能和代码,但是 PHP,尤其是在 Windows 上,具有访问域/LDAP/Active Directory 的良好功能,一些浏览器还允许使用 NTLM 单点登录(http://kb.mozillazine .org/Network.automatic-ntlm-auth.trusted-uris)。这可以通过域控制器组策略激活。(我以前的公司也在 Intranet 中使用它)。
如果你真的想使用文件系统函数来获得权限,你必须为每个用户chown
分别创建一个个人脚本,并让它以 fast-cgi 运行,以脚本所有者用户为活动用户。这更复杂,管理起来也不太舒服。