При установке контейнера Debian 10 в Proxmox VE 6.1 (с необходимой опцией nested) у меня нет ответа на ping от любого пользователя, кроме root, внутри контейнера:
Bash: ulvida@anacahuita:~$ ping che
ping: socket: Операция не разрешена
Эта проблема косвенно обсуждалась в этой теме на форуме (которая отмечена как решённая, поэтому я открываю новую). Однако, на мой личный взгляд, её сильно неправильно поняли (я считаю, что это проблема ОС, а не Apache, ведь это происходит для любого непривилегированного пользователя, не только для www-data) и могут быть лучшие решения.
Изучая разные источники, особенно этот пост на форуме, чтобы решить проблему с тем, что в последних дистрибутивах Linux уже не используется бит setuid (который заставляет ping запускаться с правами владельца программы — root, а не пользователя, который вызывает команду), а применяются kernel capabilities.
В Debian или Ubuntu, установленном с официальных ISO, команда getcap /bin/ping возвращает:
/bin/ping = cap_net_raw+ep
Чего нет в шаблонах PVE LXC Debian Buster.
Решается эта проблема очень просто. Нужно под root выполнить:
Bash: setcap cap_net_raw+ep /bin/ping
Или, что элегантнее, переустановить пакет iputils-ping.
Ping — это явно базовый сетевой инструмент, который должен быть доступен всем пользователям Linux, и так обычно и есть в стандартных дистрибутивах.
Пишу этот пост, чтобы помочь другим пользователям и настоятельно порекомендовать команде PVE обратить внимание на этот момент при настройке шаблонов.
Bash: ulvida@anacahuita:~$ ping che
ping: socket: Операция не разрешена
Эта проблема косвенно обсуждалась в этой теме на форуме (которая отмечена как решённая, поэтому я открываю новую). Однако, на мой личный взгляд, её сильно неправильно поняли (я считаю, что это проблема ОС, а не Apache, ведь это происходит для любого непривилегированного пользователя, не только для www-data) и могут быть лучшие решения.
Изучая разные источники, особенно этот пост на форуме, чтобы решить проблему с тем, что в последних дистрибутивах Linux уже не используется бит setuid (который заставляет ping запускаться с правами владельца программы — root, а не пользователя, который вызывает команду), а применяются kernel capabilities.
В Debian или Ubuntu, установленном с официальных ISO, команда getcap /bin/ping возвращает:
/bin/ping = cap_net_raw+ep
Чего нет в шаблонах PVE LXC Debian Buster.
Решается эта проблема очень просто. Нужно под root выполнить:
Bash: setcap cap_net_raw+ep /bin/ping
Или, что элегантнее, переустановить пакет iputils-ping.
Ping — это явно базовый сетевой инструмент, который должен быть доступен всем пользователям Linux, и так обычно и есть в стандартных дистрибутивах.
Пишу этот пост, чтобы помочь другим пользователям и настоятельно порекомендовать команде PVE обратить внимание на этот момент при настройке шаблонов.
