Я пытался добавить исключение в SELinux для apache на порту 5000, поэтому использовал команду:
# semanage port -a -t http_port_t -p tcp 5000
Но возвращает ошибку,
ValueError: Port tcp/5000 already defined
Я попытался проверить, так ли это, с помощью команды:
semanage port -l |grep 5000
который дал результат,
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
Как видите, 5000 нет в списке.
Есть ли что-то очевидное, что мне не хватает? Заранее благодарим вас за ваши усилия
Итак, я обнаружил, что другая служба имеет определенный статус для TCP-порта 5000.
Но заменив -a
вариант с -m
для модификации добавлен tcp порт 5000 в http_port_t
Итак, я обнаружил, что другая служба имеет определенный статус для TCP-порта 5000.
Но заменив -a
вариант с -m
для изменения, добавлено tcp port 5000
к http_port_t
Итак, сработала команда:
# semanage port -m -t http_port_t -p tcp 5000
В системах, которые у меня есть (C6, C7 и F24), TCP-порт 5000 имеет контекст SELinux commplex_port_t
. Вот почему, когда вы пытаетесь добавить его, вы получаете сообщение об ошибке
/usr/sbin/semanage: Port tcp/5000 already defined
Чтобы изменить контекст tcp-порта 5000 с commplex_port_t
к http_port_t
вам нужно будет использовать -m | - изменить переключатель
-m, --modify Modify a OBJECT record NAME
так
semanage port -m -t http_port_t -p tcp 5000
должен делать то, что ты хочешь
semanage port -l | grep 5000
http_port_t tcp 5000, 80, 81, 443, 488, 8008, 8009, 8443, 9000