1

特定の電子メール アドレスのスクリプトにパイプするように Qmail をセットアップしましたが、これは機能しています。ただし、スクリプトの一部は、機能しないファイルを作成します。

書き込みを試みているフォルダーのグループにはapache、書き込み権限 (775) があります。popuserによって確認された apache グループに追加しましたid popuser。以下の情報に基づいて、これは不要な場合があります。(プライマリ/有効グループとセカンダリの両方でApacheを作成してみました)

PHP スクリプト内get_current_uid()で , getmyuid(),getmygid()を使用しました。exec("whoami")

get_current_uid() = [file/folder OWNER] (we'll call him Bob, he is a user not a group)

getmyuid() = Bob

getmygid() = Bob

exec("whoami") = [blank]

書き込み先のディレクトリを 777 に設定すると、すべてが正常に機能します。許可が原因であることを意味します。この場合、ファイルは所有されており、popuser(上記の uid/gid ビットの結果ではありません) のグループがあります。これは、少なくとも私には、現在のユーザーが実際には であり、 でpopuserはないことを意味しBobます。

その結果、0644 に chmod できますが、chown/chgrp はできません (別の UI でファイルを管理できるようにするため、Apache をグループにする必要があります)。

ディレクトリを誰でも書き込み可能にする必要がないようchmod('/path/to/dir', 0777);に、ファイルが作成される前と作成されchmod('/path/to/dir', 0775);た後にスタックしましたが、これは失敗した場合でも実行されpopuserているようです。

簡単に言えば、Bob/ (所有者/グループ)がapacheqmail を使用して書き込み権限を持つディレクトリにファイルを作成する必要があります。Bobpopuser

うまくいけば、これは理にかなっています。

4

1 に答える 1

0

私はあなたが言っていることに完全に従っているかどうか確信が持てません。ただし、受信メールをqmailにパイプして、任意のユーザーのディレクトリで実行されているスクリプトに送信し、そのスクリプトでファイルを作成することは可能です。

まだ行っていない場合は、/var/qmail/control/rcphosts に行を追加して、ドメインの MX として機能する必要があることを qmail に伝えます。

/var/qmail/control/virtualdomains に、次のような行を追加して、このドメインのメールをどのユーザー アカウントにルーティングするかを qmail に伝えます: domain.tld:username

メールをルーティングしたいスクリプトへのパイプを含む .qmail-default ファイルをユーザー ディレクトリに作成します。/パス/to/スクリプト

qmail を再起動します。

スクリプトのすべてに実行権限を付与する必要があります。次に、受信メールによってトリガーされたときに、スクリプトが新しいファイルを作成できるようにする必要があります。

于 2013-07-25T17:59:29.073 に答える