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