42

How can I check the user and group for the nginx daemon in Ubuntu?

Or what's the syntax to find the user and group for a daemon running in Ubuntu?

Josh Correia
  • 577
  • 5
  • 7
Prakash Moturu
  • 445
  • 1
  • 4
  • 6

4 Answers4

51

Simply use ps while it is running:

oliver@ubuntuServer:~$ ps aux|grep nginx|grep -v grep
root     17119  0.0  0.1  57492  1156 ?        Ss   14:22   0:00 nginx: master process /usr/sbin/nginx
www-data 17120  0.0  0.1  57804  1572 ?        S    14:22   0:00 nginx: worker process
www-data 17121  0.0  0.1  57804  1572 ?        S    14:22   0:00 nginx: worker process
www-data 17122  0.0  0.1  57804  1572 ?        S    14:22   0:00 nginx: worker process
www-data 17123  0.0  0.1  57804  1572 ?        S    14:22   0:00 nginx: worker process

As you can see in the first column, the initial nginx master process is started with the root user account. This process will spawn the workers under the www-data user account. This would be the one you care about.

If nginx isn't running, you can just as well pull the information from the configuration file like so:

oliver@ubuntuServer:~$ grep user /etc/nginx/nginx.conf
user www-data;
Oliver Salzburg
  • 86,445
  • 63
  • 260
  • 306
  • So if I want to restart nginx in this case, I need to do it with `root` user or `www-data` user? Sometimes I get a `open() "/run/nginx.pid" failed (13: Permission denied)`... – Augustin Riedinger Apr 21 '16 at 13:19
  • @AugustinRiedinger You should probably use `sudo service nginx restart` – Oliver Salzburg Apr 21 '16 at 14:08
  • Instead of `grep nginx | grep -v grep`, I like to do `grep [n]ginx`, which keeps it from matching its own process listing. Just a fun tip. – porglezomp Mar 20 '20 at 06:01
21

To answer the "and group" part of the question for the running process, use the supgrp (names of supplementary groups) format specifier too. Try:

 ps -eo pid,comm,euser,supgrp | grep nginx
jwd630
  • 321
  • 2
  • 4
2

I always do 'ps aux | grep whatever' but I'm not an admin. If the above is right and 'ps' tells you what you need to know, do that. Then you have to do 'kill ###' not 'kill name' (### meaning eg 17119 from above). Assuming you want to kill it. It's daemon, not deamon, btw.

conspiritech
  • 409
  • 2
  • 7
1

ps -eo user,comm | grep nginx will give you the user who running nginx.

top or htop can be used to find the user of a process, too.

then you could find the group of a user use: groups USERNAME

Mengdi Gao
  • 1,324
  • 14
  • 16
  • how to delete the userroot nginx www-data nginx www-data nginx www-data nginx www-data nginx – Prakash Moturu Mar 09 '12 at 13:21
  • why you want to delete user `www-data`? running web server daemon with this user is expected result. ok, you can delete it uses `userdel` command. – Mengdi Gao Mar 09 '12 at 13:27
  • 1
    Note, however, that effective and supplementary groups of a running process may not match these of user account for various reasons. Given `CAP_SETGID` capability (which root usually has), process can modify both effective GID and supplementary group list. Because of this, `ps` solution is better. – WGH Jun 07 '16 at 20:37