The CGI Howto page contains some basic information on how Apache actually runs a program, but is there any more detailed information anywhere?
Specifically, I have a problem where a bash script runs as expected when run from an interactive shell by user www-data (this is Ubuntu). However, the script behaves differently when run via Apache from a web client. This is nothing to do with PATH or envvar differences: when run by Apache, an operation to unmount a disk appears to succeed, but actually doesn't unmount the disk. When run from the interactive shell, as the same user, the operation unmounts the disk.
This is a basic Apache install on Ubuntu 22.04 - no suexec, no chroot, plain CGI, etc. I've been running scripts via Apache this way for years, but this is the first script which attempts to carry out disk operations. All these scripts appear in the sudoers file to allow Apache to carry out specific privileged operations.
I asked this question today on StackExchange (https://unix.stackexchange.com/q/767587/212513, if the link is scrubbed), with much more detail, but I think that was probably the wrong place to ask.
Thanks.