CentOS / RHELで「semanageコマンド」が見つからないというエラーを修正する方法


semanageコマンドを使用して正しいブール値とセキュリティコンテキスト値でSamba共有を構成し、SELinuxポリシーを変更して、RHEL 8サーバー上のリモートクライアントからSamba共有にアクセスできるようにしようとしていますが、突然次のエラーが発生しました。

# semanage fcontext --at samba_share_t "/finance(/.*)?"

-bash: semanage: command not found

semanageは、SELinux(Security-Enhanced Linux)管理ツールであり、ポリシーソースを調整したり、ポリシーソースから再アセンブルしたりせずに、特定の要素を構成するために使用されます。 Semanageは、Linuxユーザー名からSELinuxユーザーIDへのマッピングで構成され、インターフェイス、ネットワークポートなどのさまざまな種類のオブジェクトのセキュリティコンテキストのマッピングも含まれます。

このエラーを修正する方法を考えていたのですが、semanageコマンドを提供するパッケージが見つかりません。少し調べてみると、yumを使用する必要があることがわかりました。これには、クエリされたファイル/ usr/sbin/semanageを提供するパッケージを見つけるオプションがあります。

この短いクイック記事では、yumコマンドを使用してsemanageコマンドを取得するために必要なパッケージをインストールする方法を説明します。

# yum provides /usr/sbin/semanage

上記のサンプル出力から、semanageコマンドを使用するには、policycoreutils-python-utils-2.8-16.1.el8.noarchパッケージをインストールする必要があることがわかります。

# yum install policycoreutils-python-utils

インストールが完了したら、semanageコマンドをもう一度実行してみてください。魔法のように機能します。

次のコマンドを使用して、semanageコマンドのオプションと使用法に関するマニュアルページを取得することもできます。

# man semanage
OR
# semanage --help