Home » Php » Get apache linux user from php

Get apache linux user from php

Posted by: admin November 30, 2017 Leave a comment

Questions:

I’m on a foreign linux system and need to determine the user that apache runs on (and so does php).

The aim:
I need to get the owner of the script (this is no problem as I can use SplFileInfo) and compare it to the owner of the apache process.

I’m open to any alternative proposals.

Regards,
Mario

Edit:
Additional info:

The script is a thumbnail generator, that uses an XML file to generate thumbs from larger images. The script needs to create folders and write files. As I cannot influence the php configuration and I do not have any shell access, this has to be done very silently.
The creation process stopps via exception and sends a mail on failue. As most of php’s function cannot throw exceptions on failue, I need some manual checks to determine the environment I’m in. Therefore I need the apache user to compare it to some directory or fileowner.

Answers:

You can call the php exec function to execute whoami:

<?php echo exec('whoami'); ?>

Questions:
Answers:

see posix_getuid() and posix_getpwuid()

Questions:
Answers:

Some complicated answers here.

This works for me:

$user = getenv('APACHE_RUN_USER');

Not sure if this is just a new thing that been added to apache since this question was asked but it’s definitely there now.

Questions:
Answers:

phpinfo will dump a lot of system information. For apache2 installs, there is a section that displays the apache user and group ids. Try creating a php script that just has one line, a call to phpinfo(), and open it in your web browser.