Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Allow users to reload PHP FPM without Sudo

Tags:

php

sudo

fpm

On our development servers, we allow multiple developers access to the server to git pull their changes. Normally this requires running sudo systemctl reload php-fpm (or sending USR2, etc.). However, we want to allow them to reload the changed code in PHP-FPM without needing sudo.

Way back when when I used to use Ruby, you could do exactly what I'm looking for by touching a file named restart.txt in the tmp directory.

Does PHP-FPM support anything like that? Alternatively, is there anyway to allow the reload command (or any similar method of sending a USR2) without sudo?

like image 645
Moshe Katz Avatar asked Apr 10 '17 18:04

Moshe Katz


2 Answers

You'll probably be there when whitelisting the command in your /etc/sudoers file:

Start by editing the sudoers file:

sudo visudo

Add the following config line:

user ALL=(root) NOPASSWD: systemctl reload php-fpm

Replace user (at the beginning of the line) with the real username, for whom the command is executed.

This will privilege the user to call sudo systemctl reload php-fpm being executed as root (without password).

like image 186
Dygnus Avatar answered Sep 27 '22 03:09

Dygnus


Or one can use:

user ALL=(ALL) NOPASSWD: /usr/sbin/service php7.3-fpm *

Where 7.3 might change depending on the php version you have and user is your user.

like image 22
Philip Avatar answered Sep 27 '22 03:09

Philip