web-dev-qa-db-ja.com

chcon:ラベルのないファイル '/ usr / sbin / xrdp'に部分的なコンテキストを適用できません

this チュートリアルからxrdpをインストールするようにSELinuxを構成するためにこの行を実行しようとしているときはいつでも:

# chcon --type=bin_t /usr/sbin/xrdp
# chcon --type=bin_t /usr/sbin/xrdp-sesman

私はこれらのエラーを受け取ります:

chcon: can't apply partial context to unlabeled file '/usr/sbin/xrdp'
chcon: can't apply partial context to unlabeled file '/usr/sbin/xrdp-sesman'

CentOS 7.2 64ビットを使用しています。

9
TheOnlyOne

私もCentOS 7を使用していますが、これでうまくいきます。

chcon -h system_u:object_r:bin_t:s0 /usr/sbin/xrdp
chcon -h system_u:object_r:bin_t:s0 /usr/sbin/xrdp-sesman
5
Thinh Phan

コマンドはより多くの情報を提供する必要があります。これについては以前に説明しました(ただし、duplicatesはありません)。

例えば、

たとえば、ls -lZは、サンプルリストのこれらのタグを提供します。

$ ls -lZ msginit msgmerge msgunfmt
-rwxr-xr-x. root root unconfined_u:object_r:bin_t:s0   msginit
-rwxr-xr-x. root root unconfined_u:object_r:bin_t:s0   msgmerge
-rwxr-xr-x. root root unconfined_u:object_r:bin_t:s0   msgunfmt

chconは、引数にunconfined_u:object_r:bin_t:s0のようなものを期待しています。 bin_tは、部分的な情報にすぎません。

参照された手順は機能するはずであり、chconの使用は冗長です。 CentOS7を確認すると、たまたまxrdpがインストールされており、リストに表示されます

$ ls -lZ xrdp xrdp-chansrv xrdp-sesman xrdp-sessvc
-rwxr-xr-x. root root system_u:object_r:bin_t:s0       xrdp
-rwxr-xr-x. root root system_u:object_r:bin_t:s0       xrdp-chansrv
-rwxr-xr-x. root root system_u:object_r:bin_t:s0       xrdp-sesman
-rwxr-xr-x. root root system_u:object_r:bin_t:s0       xrdp-sessvc

system_uフィールドはSELinuxuserであり、object_rフィールドはroleであり、bin_ttypeであり、s0は(デフォルト)levelです。 /usr/sbin内のファイルは、semanage fcontext -lで示されるパターンからコンテキストを取得します(ただし、多くの一致があります)。このガイドに従って、xrdp —または/usr/sbinのパターンを削除した可能性があります。ただし、chconを使用してユーザーとロールを指定することにより、コマンドをより明示的にすることができます。

chcon -u system_u -r object_r --type=bin_t /usr/sbin/xrdp
chcon -u system_u -r object_r --type=bin_t /usr/sbin/xrdp-sesman

または、パターンはそのままで、(たとえば)ファイルをインストールするのではなく移動した場合は、次を使用して修復できます。

restorecon -v /usr/sbin/xrdp
restorecon -v /usr/sbin/xrdp-sesman

参考文献:

4
Thomas Dickey

それは誰かを助けるかもしれないので、ここに私の簡単な2セントです。何らかの方法でselinuxを無効にした場合、この問題に直面する可能性があります。これを解決するには、selinuxを通常の状態に戻します。/etc/selinux/configを開いて変更します

SELINUX =無効

戻る

SELINUX = enforcing

2