nginx: [emerg] getpwnam("www-data") failed

Maxim Dounin mdounin на mdounin.ru
Пн Апр 8 02:10:02 UTC 2019


Hello!

On Mon, Apr 08, 2019 at 03:48:30AM +0300, Maxim Dounin wrote:

> On Sat, Apr 06, 2019 at 01:21:06PM +0100, Anton Kiryushkin wrote:
> 
> > При обновлении на 1.15.10 поймал такую картину. В конфиге полжизни было
> > написано:
> > user www-data;
> > 
> > Пользователь есть, группа есть. Все ищется по /etc/passwd и /etc/group. Что
> > поменялось в nginx?
> 
> Ничего.  Последнее изменение в соответствующей функции - 
> стилистическое - датируется 2015 годом, nginx 1.9.6, 7ac57369036c.  
> Последнее смысловое изменение - о том, чтобы сообщения об ошибках 
> были более детерминированы - было в 2007 году, nginx 0.6.3, 
> eb232400e829.
> 
> Сообщение как бы говорит о том, что библиотечный вызов 
> getpwnam() с параметром "www-data" вернул ошибку.  Если далее в 
> скобках не указано подробностей про собственно ошибку - это должно 
> случаться тогда и только тогда, когда такого пользователя нет.  
> Если это не соответствует реальности - стоит искать причины в 
> системе.

Соседний тред наводит на мысли о том, что nginx собран на Linux'е 
статически.  В этом случае линковщик выдаёт большую простыню 
warning'ов, в том числе - про getpwnam():

warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

Если это требование нарушено - чудеса ожидаемы.  На практике это 
означает, что статически собранное приложение можно использовать 
только на той же машине и необходимо пересобирать при любых 
обновлениях системы.  Ну или просто не надо ничего собирать 
статически.

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru