1

我创建了一个包含几个文件夹列表的 Intranet,以允许用户下载文件。

但我定义了对文件夹的安全访问。每个用户都可以访问特定文件夹。

在我的 Intranet 中,我想验证文件夹是否可由特定用户(Windows 会话的用户)写入。我使用了函数 is_writable() 但此函数验证全局 chmod 而不是用户的。

你知道一个允许它在 PHP 中使用的函数吗?

谢谢 !

4

1 回答 1

0

全局用户是指运行 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 运行,以脚本所有者用户为活动用户。这更复杂,管理起来也不太舒服。

于 2013-09-12T15:25:58.850 回答