Команда semanage не найдена в CentOS 7/8 и RHEL 7/8
Некоторое время назад я пытался настроить сервер Apache для прослушивания порта, отличного от порта по умолчанию, то есть 80. После того, как я внес необходимые изменения в файл конфигурации Apache и разрешил использование пользовательского порта через брандмауэр, сервер Apache по-прежнему отказывался прослушивать пользовательский порт. Немного погуглив, я понял, что SELinux не разрешает этот порт, поэтому я выполнил следующую команду, чтобы сервер Apache прослушивал другой порт:
# semanage port -a -t ftp_port_t -p tcp 8090
Здесь 8090 — это порт, который я хочу, чтобы сервер Apache прослушивал.
Но выдала еще одну ошибку:
-bash: semanage: command not found
Я понятия не имею, какой пакет будет предоставлять команду semanage в моей системе CentOS. Если вы когда-нибудь задавались вопросом, как исправить эту ошибку в версиях RHEL 7 и 8 и CentOS 7 и 8, найдите ту, которая предоставляет команду semanage, и установите ее, как описано ниже.
Команда semanage не найдена в CentOS 7/8 и RHEL 7/8
Сначала мы увидим, как это исправить на сервере CentOS 8.
Исправьте ошибку «команда semanage не найдена» в CentOS 8 и RHEL 8.
Сначала давайте выясним, какой пакет предоставляет команду semanage. Для этого выполните следующую команду:
dnf provides /usr/sbin/semanage
Или,
dnf whatprovides /usr/sbin/semanage
Пример вывода с сервера CentOS 8:
Last metadata expiration check: 0:32:47 ago on Saturday 08 February 2020 12:02:37 PM IST.
policycoreutils-python-utils-2.9-3.el8.noarch : SELinux policy core python utilities
Repo : BaseOS
Matched from:
Filename : /usr/sbin/semanage
policycoreutils-python-utils-2.9-3.el8_1.1.noarch : SELinux policy core python utilities
Repo : BaseOS
Matched from:
Filename : /usr/sbin/semanage
Как вы можете видеть, пакет с именем «policycoreutils-python-utils-2.9-3.el8_1.1.noarch» предоставляет команду «semanage», и она доступна в репозитории по умолчанию, то есть BaseOS.
Итак, давайте установим этот пакет, используя следующую команду от имени пользователя root:
dnf install policycoreutils-python-utils
Пример вывода:
CentOS-8 - AppStream 2.9 kB/s | 4.3 kB 00:01
CentOS-8 - Base 4.5 kB/s | 3.8 kB 00:00
CentOS-8 - Extras 1.7 kB/s | 1.5 kB 00:00
Dependencies resolved.
==========================================================================================================================================================================
Package Architecture Version Repository Size
==========================================================================================================================================================================
Installing:
policycoreutils-python-utils noarch 2.9-3.el8_1.1 BaseOS 250 k
Installing dependencies:
checkpolicy x86_64 2.9-1.el8 BaseOS 348 k
python3-audit x86_64 3.0-0.10.20180831git0047a6c.el8 BaseOS 85 k
python3-libsemanage x86_64 2.9-1.el8 BaseOS 127 k
python3-policycoreutils noarch 2.9-3.el8_1.1 BaseOS 2.2 M
python3-setools x86_64 4.2.2-1.el8 BaseOS 600 k
Transaction Summary
==========================================================================================================================================================================
Install 6 Packages
Total download size: 3.6 M
Installed size: 11 M
Is this ok [y/N]: y
Downloading Packages:
(1/6): python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_64.rpm 215 kB/s | 85 kB 00:00
(2/6): python3-libsemanage-2.9-1.el8.x86_64.rpm 304 kB/s | 127 kB 00:00
(3/6): policycoreutils-python-utils-2.9-3.el8_1.1.noarch.rpm 258 kB/s | 250 kB 00:00
(4/6): checkpolicy-2.9-1.el8.x86_64.rpm 260 kB/s | 348 kB 00:01
(5/6): python3-setools-4.2.2-1.el8.x86_64.rpm 296 kB/s | 600 kB 00:02
(6/6): python3-policycoreutils-2.9-3.el8_1.1.noarch.rpm 490 kB/s | 2.2 MB 00:04
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 594 kB/s | 3.6 MB 00:06
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : python3-setools-4.2.2-1.el8.x86_64 1/6
Installing : python3-libsemanage-2.9-1.el8.x86_64 2/6
Installing : python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_64 3/6
Installing : checkpolicy-2.9-1.el8.x86_64 4/6
Installing : python3-policycoreutils-2.9-3.el8_1.1.noarch 5/6
Installing : policycoreutils-python-utils-2.9-3.el8_1.1.noarch 6/6
Running scriptlet: policycoreutils-python-utils-2.9-3.el8_1.1.noarch 6/6
Verifying : checkpolicy-2.9-1.el8.x86_64 1/6
Verifying : policycoreutils-python-utils-2.9-3.el8_1.1.noarch 2/6
Verifying : python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_64 3/6
Verifying : python3-libsemanage-2.9-1.el8.x86_64 4/6
Verifying : python3-policycoreutils-2.9-3.el8_1.1.noarch 5/6
Verifying : python3-setools-4.2.2-1.el8.x86_64 6/6
Installed:
policycoreutils-python-utils-2.9-3.el8_1.1.noarch checkpolicy-2.9-1.el8.x86_64 python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_64
python3-libsemanage-2.9-1.el8.x86_64 python3-policycoreutils-2.9-3.el8_1.1.noarch python3-setools-4.2.2-1.el8.x86_64
Complete!
Вот и все. Теперь мы можем управлять политиками SELinux с помощью команды semanage.
Примечание:
Если вы не знаете точный путь к команде semange, вы можете просто запустить следующую команду:
dnf provides semanage
Или,
dnf provides */semanage
Или,
dnf whatprovides */semanage
Это отобразит тот же результат, что и приведенные выше команды.
Обычно исполняемые файлы расположены в любом из этих мест — /usr/sbin и /usr/bin и /usr/local/bin. . Следовательно, мы можем искать непосредственно в этих местах.
Чтобы получить помощь, запустите:
semanage -h
Пример вывода:
usage: semanage [-h]
{import,export,login,user,port,ibpkey,ibendport,interface,module,node,fcontext,boolean,permissive,dontaudit}
...
semanage is used to configure certain elements of SELinux policy with-out
requiring modification to or recompilation from policy source.
positional arguments:
{import,export,login,user,port,ibpkey,ibendport,interface,module,node,fcontext,boolean,permissive,dontaudit}
import Import local customizations
export Output local customizations
login Manage login mappings between linux users and SELinux
confined users
user Manage SELinux confined users (Roles and levels for an
SELinux user)
port Manage network port type definitions
ibpkey Manage infiniband ibpkey type definitions
ibendport Manage infiniband end port type definitions
interface Manage network interface type definitions
module Manage SELinux policy modules
node Manage network node type definitions
fcontext Manage file context mapping definitions
boolean Manage booleans to selectively enable functionality
permissive Manage process type enforcement mode
dontaudit Disable/Enable dontaudit rules in policy
optional arguments:
-h, --help show this help message and exit
Также обратитесь к справочным страницам.
man semanage
Исправить ошибку «команда semanage не найдена» в CentOS 7 и RHEL 7.
Чтобы выяснить, какой пакет предоставит команду semanage в CentOS 7, запустите:
yum provides /usr/sbin/semanage
Или,
yum whatprovides /usr/sbin/semanage
Пример вывода моего сервера CentOS 7:
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirror.nbrc.ac.in
* extras: mirror.nbrc.ac.in
* updates: mirror.nbrc.ac.in
policycoreutils-python-2.2.5-11.el7.x86_64 : SELinux policy core python
: utilities
Repo : base
Matched from:
Filename : /usr/sbin/semanage
policycoreutils-python-2.2.5-11.el7_0.1.x86_64 : SELinux policy core python
: utilities
Repo : updates
Matched from:
Filename : /usr/sbin/semanage
Как видно из приведенного выше вывода, нам необходимо установить пакет policycoreutils-python-2.2.5-11.el7_0.1.x86_64 , чтобы использовать 'semanage'< команда.
Итак, давайте установим пакет policycoreutils-python-2.2.5-11.el7_0.1.x86_64 , используя следующую команду от имени пользователя root:
yum install policycoreutils-python
Пример вывода:
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
policycoreutils-python x86_64 2.2.5-20.el7 base 435 k
Installing for dependencies:
audit-libs-python x86_64 2.4.1-5.el7 base 69 k
checkpolicy x86_64 2.1.12-6.el7 base 247 k
libcgroup x86_64 0.41-8.el7 base 64 k
libsemanage-python x86_64 2.1.10-18.el7 base 94 k
python-IPy noarch 0.75-6.el7 base 32 k
setools-libs x86_64 3.3.7-46.el7 base 485 k
Updating for dependencies:
audit x86_64 2.4.1-5.el7 base 234 k
audit-libs x86_64 2.4.1-5.el7 base 80 k
libsemanage x86_64 2.1.10-18.el7 base 123 k
policycoreutils x86_64 2.2.5-20.el7 base 803 k
Transaction Summary
================================================================================
Install 1 Package (+6 Dependent packages)
Upgrade ( 4 Dependent packages)
Total download size: 2.6 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/11): audit-libs-2.4.1-5.el7.x86_64.rpm | 80 kB 00:02
(2/11): audit-libs-python-2.4.1-5.el7.x86_64.rpm | 69 kB 00:02
(3/11): checkpolicy-2.1.12-6.el7.x86_64.rpm | 247 kB 00:02
(4/11): libsemanage-2.1.10-18.el7.x86_64.rpm | 123 kB 00:01
(5/11): audit-2.4.1-5.el7.x86_64.rpm | 234 kB 00:04
(6/11): libsemanage-python-2.1.10-18.el7.x86_64.rpm | 94 kB 00:02
(7/11): policycoreutils-python-2.2.5-20.el7.x86_64.rpm | 435 kB 00:03
(8/11): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:02
(9/11): setools-libs-3.3.7-46.el7.x86_64.rpm | 485 kB 00:08
(10/11): policycoreutils-2.2.5-20.el7.x86_64.rpm | 803 kB 00:10
(11/11): libcgroup-0.41-8.el7.x86_64.rpm | 64 kB 00:37
--------------------------------------------------------------------------------
Total 71 kB/s | 2.6 MB 00:37
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : audit-libs-2.4.1-5.el7.x86_64 1/15
Updating : libsemanage-2.1.10-18.el7.x86_64 2/15
Updating : policycoreutils-2.2.5-20.el7.x86_64 3/15
Installing : libsemanage-python-2.1.10-18.el7.x86_64 4/15
Installing : audit-libs-python-2.4.1-5.el7.x86_64 5/15
Installing : python-IPy-0.75-6.el7.noarch 6/15
Installing : checkpolicy-2.1.12-6.el7.x86_64 7/15
Installing : libcgroup-0.41-8.el7.x86_64 8/15
Installing : setools-libs-3.3.7-46.el7.x86_64 9/15
Installing : policycoreutils-python-2.2.5-20.el7.x86_64 10/15
Updating : audit-2.4.1-5.el7.x86_64 11/15
Cleanup : policycoreutils-2.2.5-11.el7_0.1.x86_64 12/15
Cleanup : libsemanage-2.1.10-16.el7.x86_64 13/15
Cleanup : audit-2.3.3-4.el7.x86_64 14/15
Cleanup : audit-libs-2.3.3-4.el7.x86_64 15/15
Verifying : setools-libs-3.3.7-46.el7.x86_64 1/15
Verifying : libsemanage-2.1.10-18.el7.x86_64 2/15
Verifying : libcgroup-0.41-8.el7.x86_64 3/15
Verifying : checkpolicy-2.1.12-6.el7.x86_64 4/15
Verifying : policycoreutils-2.2.5-20.el7.x86_64 5/15
Verifying : python-IPy-0.75-6.el7.noarch 6/15
Verifying : audit-libs-2.4.1-5.el7.x86_64 7/15
Verifying : libsemanage-python-2.1.10-18.el7.x86_64 8/15
Verifying : audit-2.4.1-5.el7.x86_64 9/15
Verifying : policycoreutils-python-2.2.5-20.el7.x86_64 10/15
Verifying : audit-libs-python-2.4.1-5.el7.x86_64 11/15
Verifying : audit-libs-2.3.3-4.el7.x86_64 12/15
Verifying : policycoreutils-2.2.5-11.el7_0.1.x86_64 13/15
Verifying : libsemanage-2.1.10-16.el7.x86_64 14/15
Verifying : audit-2.3.3-4.el7.x86_64 15/15
Installed:
policycoreutils-python.x86_64 0:2.2.5-20.el7
Dependency Installed:
audit-libs-python.x86_64 0:2.4.1-5.el7
checkpolicy.x86_64 0:2.1.12-6.el7
libcgroup.x86_64 0:0.41-8.el7
libsemanage-python.x86_64 0:2.1.10-18.el7
python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.7-46.el7
Dependency Updated:
audit.x86_64 0:2.4.1-5.el7 audit-libs.x86_64 0:2.4.1-5.el7
libsemanage.x86_64 0:2.1.10-18.el7 policycoreutils.x86_64 0:2.2.5-20.el7
Complete!
Начните использовать команду semanage в своих системах CentOS 7 и RHEL 7.
Надеюсь это поможет.
Рекомендуется к прочтению:
- Как найти пакет, предоставляющий определенный файл в Linux
- Узнайте, доступен ли пакет для вашего дистрибутива Linux
- Предлагать установку пакетов при запуске недоступной команды
- Как проверить версию пакета Linux перед его установкой