CentOS - semanage - Удаляют диапазон портов

Возможно проверьте некоторые ответы отсюда: https://stackoverflow.com/questions/91791/grep-and-sed-equivalent-for-xml-command-line-processing

7
задан 15 November 2012 в 03:56
1 ответ

Это было впечатляюще, вы заставили меня обратиться к исходному коду, чтобы найти ответ. С первой попытки вы наткнулись на правильный способ определения диапазона: два числа должны быть разделены дефисом.

Вас подвешивает следующее:

(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
    raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
if not exists:
    raise ValueError(_("Port %s/%s is not defined") % (proto, port))

Если вы указываете диапазон портов при добавлении правила, вы должны указать тот же диапазон портов при удалении правила. Например:

sudo semanage port -l | grep ^http_port_t
http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443

Чтобы удалить их, вы должны вызвать delete один раз для каждого порта или диапазона портов между запятыми. Они не могут быть непрерывным диапазоном, потому что они не были определены таким образом.

И наоборот, в этом примере:

mysqld_port_t                  tcp      1186, 3306, 63132-63163

Вы не можете удалить отдельно 63132 или 63133. Вы должны указать именно этот диапазон.

Пример добавления и удаления диапазона:

semanage port --add -t http_port_t -p tcp 8899-8902
semanage port --delete -t http_port_t -p tcp 8899-8902
7
ответ дан 2 December 2019 в 23:38

Теги

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