私は電子メールサーバーのユーザーを作成するためにPHPスクリプトを作成しようとしていますが、PHP Intereterの権利に問題があります。私が実行しようとしている行は以下の通りです:PHPを使用したLinuxユーザーの作成
useradd -m -s /usr/sbin/nologin username
そして次にuser:pass | chpasswd
です。
私は電子メールサーバーのユーザーを作成するためにPHPスクリプトを作成しようとしていますが、PHP Intereterの権利に問題があります。私が実行しようとしている行は以下の通りです:PHPを使用したLinuxユーザーの作成
useradd -m -s /usr/sbin/nologin username
そして次にuser:pass | chpasswd
です。
この同じ問題が頻繁に発生することがあります。 Apacheはubuntu上でwww-data:www-data
として動作します。 exec('useradd -m -s /usr/sbin/nologin username')
を実行すると、コマンドラインのsudoer
ではなく、www-data
と同じアクセス許可で実行されます。
アクセス許可を調整したり、関係を修正したり、適切な権限で実行するCronタスクにオフロードする必要があります。
Linuxのスクリプトは、実際にはApache自体で実行されます。 Apacheのユーザーwww-data
には、sudo
を使用して特定のアプリケーションを実行する権限が与えられている必要があります。これをachiveする方法があります
、あなたがこれを行うことができますsudo visudo
を使用しての/ etc/sudoersファイルとを編集する
。あなたがroot権限を使用してuseradd
とphp
を実行したいと仮定すると、
www-data ALL=NOPASSWD: /usr/sbin/useradd, usr/bin/php
。
ありがとうございました。私はそれがpriveesgesの問題だと思った。 –