我制作了一个包含几个文件夹的列表的内部网,以便允许用户下载文件。
但我定义了对文件夹的安全访问权限。每个用户都可以在特定文件夹中访问。
在我的内部网中,我想验证文件夹是否可由特定用户(Windows 会话的用户)写入。我使用了函数 is_writable(),但这个函数验证的是全局 chmod 而不是用户的。
你知道一个允许它在PHP中的函数吗?
谢谢 !
全局用户是指运行网络服务器/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)进行单点登录。这可以通过域控制器组策略激活。(我在以前的公司也一直在内联网中使用它)。
如果你真的想使用文件系统函数获得权限,你必须为每个用户创建一个个人脚本,分别chown
它,让它以 fast-cgi 运行,将脚本所有者用户作为活动用户。这更复杂,管理起来也不舒服。