1

ユーザーがファイルをダウンロードできるようにするために、いくつかのフォルダーのリストを含むイントラネットを作成します。

しかし、フォルダーへのセキュリティ アクセスを定義しました。各ユーザーは、特定のフォルダーにアクセスできます。

イントラネットで、特定のユーザー (Windows セッションのユーザー) がフォルダーに書き込み可能かどうかを確認したいと思います。関数 is_writable() を使用しましたが、この関数はユーザーのものではなくグローバル chmod を検証します。

PHP でそれを可能にする関数を知っていますか?

ありがとうございます !

4

1 に答える 1

0

グローバル ユーザーとは、Web サーバー / 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 で実行する必要があります。これはより複雑であり、管理が容易ではありません。

于 2013-09-12T15:25:58.850 に答える