私は公開されているものと並行して制限付きアクセスコントロールのウェブサイトで取り組んでいます。現時点では、すべてのユーザーアクセスとディレクトリのパスワード設定はcPanelで実行されますが、cPanelはユーザーの中には少し混乱します。しかしアクセスが制限されているWebサイトでは、アクセスできる権限のあるユーザー(およびWebサイトの他の部分)のリストを変更する必要があります。cPanelのユーザアクセス/ディレクトリパスワードを模倣する必要があります
私は実際のpasswdファイルを編集できるように、制限されたアクセスサイトにPHPスクリプトを設定して、cPanelに似たようなことをしようとしています。しかし、私が試したことはすべてうまくいかなかった。私たちのウェブサーバーは、LiteSpeedではなく、Apache(共有ホストの設定によりこれを変更することはできません)です。これは、.htaccessファイルによって参照されるWebアクセス可能なフォルダの外にあるフォルダ内のpasswdファイルを使用しています。既存のアクセスを見てみると、Apacheのdocsに記載されている塩漬けのMD5ハッシュを使用しているようには見えません。保存されているハッシュされたパスワードは、 saltは2文字以上です)、セキュリティ上の理由から、私のコードに特定のパスワードハッシングアルゴリズムを埋め込むことには消極的です。私は通常、execやshell_exec経由でapacheで提供されるhtpasswdユーティリティを使用しようとしましたが、インストールされていないか、アクセスできないです(そしていくつかの異なるパスを試しました - file_existsによって存在が確認されたとしても、ほとんどのファイルが変更されていないのは驚きです)。
私は、LiteSpeedおよび/またはcPanelの動作を確認するために、さまざまなドキュメントを使用してさまざまな検索を行ってきましたが、ほとんどの場合、ユーザのアクセス制御パスワードではなくcPanelログインパスワードが検索されます。私はいくつかのcPanelソースコードを調べてみましたが、何かを見つけることはできませんでした。
ソースコードや、LiteSpeedでパスワードの追加/更新/削除機能を実行する方法について説明しているドキュメントを参照してください。より直接的にcPanelの機能をより直接的にトリガーする方法でも便利です(APIを持っていることはわかっていますが、そのパスはホスト上でロックされています)。
編集:スティーブのコメントの後、私はいくつかの事をチェックしました。私のスクリプトは、スクリプトのディレクトリ配置に関係なくpasswdファイルを見ることができます。 passwdファイルには私が期待しているパーミッションが644あります。書き込み権限を持っている "user"は、私がcPanelにログインするのを期待しています。これはさらに困難をもたらす。
Edit#2:一時的なパスワードで保護されたサブディレクトリを作成し、PHPスクリプトから直接ユーザーを追加しました(コピーして既存の行の1つをコピーしてユーザー名を変更しました)。うまくいけば、新しいユーザーが追加され、cPanelはその変更を見ていました。したがって、アクセス権は問題になりません。
編集#3:私はいくつかの演奏をして、パスワードがpasswdファイルにあるものとほとんど同じである暗号から出力された文字列を取得しました(最新のアルゴリズムが確実になるようにリセットページに警告メッセージを追加します)。中古)。しかし、暗号が探している塩は$ 1 $ < 8-char-rand-string> $ですが、ファイル内の内容は$ apr1 $ < 8-char-rand-string> $です。塩に "apr"を追加すると、cryptは失敗します:
Cpanelは主にLinuxパーミッションを使用します。共有ホストでこれを行うことはできません。これらのアクセス許可を実際に使用する必要がありますか? WebサイトユーザーがWebサイト経由でサーバーにアクセスできる場合(通常どおり)、php/sqlで独自のアクセス制御レイヤーを実行するだけです。 – Steve
@Steve、明らかにするために、私はcPanelへのアクセスやcPanel権限の変更を望んでいません。私はpublic_htmlの下のディレクトリへのアクセス権を設定したいと思っています。ApacheやlitespeedなどのWebサーバーソフトウェアには、この種のメカニズムが組み込まれています。可能な限り、独自のアクセス制御を構築または使用しないでください。 cPanelへの言及は、cPanelでこれを行うことができるということです。私は同じことをやり直しています。 – greenbutterfly