] Как изменить UID службы Squid во FreeBSD?

Похоже, есть две проблемы.

Первые жесткие диски находятся в ТБ (1000 ^ 4), а df сообщает в ТиБ (1024 ^ 4). Вычислив ожидаемые 104 ТБ в ТиБ, вы получите 94,5 ТБ. Все еще выключен.

Но вы сказали, что у вас два диска, поэтому (15 * 8) - (2 * 8) = 104 ТБ. Что делать, если у вас есть третий привод для резервирования или он не используется? Тогда вы получите (15 * 8) - (3 * 8) = 96 ТБ. Преобразуйте в ТиБ, и вы получите 87,3 ТиБ, о чем вам сообщает df .

4
21.03.2016, 01:01
1 ответ

Хорошо, теперь я понял. После нескольких проверок на форуме FreeBSD я теперь могу подтвердить, что тюрьмы FreeBSD действуют немного как швейцарский сыр, если речь идет об объектах SHM. Действительно, FreeBSD не обеспечивает никакой изоляции для SHM-объектов: все тюрьмы могут получить доступ ко всем SHM-объектам в масштабе всей системы, без возможности предотвратить это.

Ошибка, упомянутая в этом вопросе, поэтому вполне логична:

  • Когда использовались разные UID, Squid не мог запуститься, потому что он пытался получить доступ к объектам SHM, принадлежащим другому пользователю, отсюда и сообщение об ошибке " create не удалось выполнить shm_open (/squid-cf__metadata.shm): (17) Файл существует ",
  • Когда в обеих установках использовался один и тот же UID, Squid запустился успешно, но ситуация была возможно, даже хуже, поскольку оба экземпляра теперь будут бороться с одним и тем же объектом памяти, перезаписывая данные друг друга и удаляя объект при выключении ...

Из-за этого необходимо принять особые меры, чтобы гарантировать, что каждый экземпляр Squid будет использовать разные SHM имена объектов.

По умолчанию Squid создает следующие объекты SHM в системах FreeBSD (точное поведение зависит от ОС):

/squid-cf__metadata.shm
/squid-cf__queues.shm
/squid-cf__readers.shm

squid предлагает параметр -n , позволяющий дать определенное имя к экземпляру. Конкретно это имя (среди прочего) заменит "squid" в именах объектов SHM выше, так что имя объекта SHM станет уникальным для всей системы.

Следовательно, при настройке нового экземпляра Squid в новой тюрьме необходимо отредактировать /etc/rc.conf и добавить запись, как показано ниже (замените something_unique на экземпляр уникальное имя на вашем хосте):

squid_flags="-n something_unique"

Это позволяет правильно запустить оба сервера Squid, каждый с разными UID.

Очевидно, хотя здесь это немного выходит за рамки, тот факт, что SHM-объекты Squid могут быть свободно доступны из любой тюрьмы, может представлять собой проблему безопасности сам по себе, и ее нельзя игнорировать ...

3
27.01.2020, 20:57

Теги

Похожие вопросы