On 2/5/07, Cameron Simpson <cs@xxxxxxxxxx> wrote:
On 05Feb2007 10:28, Dan Track <dan.track@xxxxxxxxx> wrote: | I'm trying to get my head round how processes start and how they get | their environment, especially env variables. | Let's say you have two scenarios, one where a user e.g www has the | following entry in /etc/passwd | | www:x:500:500::/home/www:/bin/bash | | and the other where the user has the following entry: | | apache:x:48:48:Apache:/var/www:/sbin/nologin | | The main difference between the two that I would like to focus on is | the that one user has a bash shell (www) while the other has no shell | (apache). | | If both users are used to start an httpd process, then where and how | do the processess get their environment variables, i.e what files are | read in both cases e.g /etc/profile, /etc/bashrc etc.? Well first up, only "www" can "log in". At login time a shell will source a bunch of files to set up its initial environment - its starts with something very simple from the login command (which issues the login prompt). However, a web server startup is not a login shell. The web server is simply invoked, typically from an init script. The login shell of the user is not involved at all. So there's not difference in the example you cite. --
Hi Thanks for the reply. If the web server user does not have a login shell then where does the daemon get its environment variables from? Regards Dan