web-dev-qa-db-ja.com

PHPを使用して新しいユーザーを作成することはApache2.4によって認識されません

(PHP)を使用して新しいLinuxユーザーを作成するサーバー設定があります

Shell_exec ( '/usr/sbin/useradd ' . $username );
exec ('usermod -a -G ' . $username . ' '. $username); #add user into the usergroup
exec ('usermod -a -G ' . $username . ' www-data'); #add usergroup with the www-data

次に、ユーザースクリプトは、ファイルの所有者とグループをこの所有者に変更します。サーバーはsuPHPでセットアップされ、これらのファイルを所有者として実行できるようになります。

このセットアップはApache2.2で正常に機能しましたが、Apache2.4では機能していません。ファイルをoepnしようとすると、403 forbiddenエラーが発生することを除いて、すべて正常に動作します。ユーザーが追加された後にApacheを再起動すると問題が修正されますが、それは私にとって実行可能な解決策ではありません。ユーザーはWebサーバーを使用して追加されるため、Apacheを毎回リロード/再起動しなくてもこれを実行できる必要があります。

サーバー時間を検索して問題を修正しようとしましたが、修正できませんでした。 ubuntu 14.04を実行していますが、Apache2.2にダウングレードすることもできません。

1
ksb

グループに自分を追加するたびに、変更を有効にするためにログアウトしてから再度ログインする必要があります。ここでも同じことが起こっています。Apacheを再起動すると、「ログインし直して」ユーザーのグループに参加できるようになり、ユーザーのファイルを読み取って提供できるようになります。

2
user186340