chcon: tidak dapat menerapkan konteks parsial ke file yang tidak berlabel '/ usr / sbin / xrdp'


9

Setiap kali saya mencoba menjalankan baris ini untuk mengkonfigurasi SELinux untuk menginstal xrdp dari tutorial ini :

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

Saya mendapatkan kesalahan ini:

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'

Saya menggunakan CentOS 7.2 64 bit.

Jawaban:


6

Saya juga menggunakan CentOS 7, dan ini berfungsi untuk saya:

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

1
Sementara Thomas memberikan jawaban yang cukup komprehensif, solusinya tidak semudah itu. Saya harus melakukan banyak percobaan dan kesalahan sampai saya mencapai dua perintah ini, yang sebenarnya bekerja
— Adelin

Itu juga bekerja untuk saya di kotak CentOs.
— ramires.cabral

4

Perintah Anda harus memberikan informasi lebih lanjut. Telah dibahas sebelumnya (tapi saya tidak melihat duplikat ).

Sebagai contoh,

Misalnya, ls -lZberikan tag ini untuk daftar sampel:

$ 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

dan chconmengharapkan sesuatu seperti unconfined_u:object_r:bin_t:s0dalam argumennya. A bin_thanya sebagian informasi.

Prosedur yang dirujuk seharusnya bekerja, dan penggunaan chconredundan. Memeriksa CentOS7 saya, kebetulan saya telah xrdpmenginstal, dan daftar menunjukkan

$ 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

The system_ulapangan adalah SELinux pengguna , yang object_rbidang adalah peran , bin_tadalah jenis dan s0adalah (default) tingkat . File-file di /usr/sbindapatkan konteksnya dari pola yang ditunjukkan oleh semanage fcontext -l(tetapi ada banyak kecocokan). Dalam mengikuti panduan ini, Anda mungkin telah menghapus pola untuk xrdp- atau bahkan untuk /usr/sbin. Namun, Anda bisa lebih eksplisit dalam perintah, dengan menentukan pengguna dan peran menggunakan 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

Atau, jika polanya utuh tetapi (misalnya) Anda telah memindahkan file daripada menginstalnya, Anda dapat memperbaiki barang menggunakan

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

Bacaan lebih lanjut:


3
Saya masih belum mengerti, bisakah Anda memberi tahu saya perintah apa yang akan memperbaikinya? karena saya tidak begitu terbiasa dengan linux. Baik SELinux :(
— TheOnlyOne

2

Mungkin membantu seseorang, jadi ini 2 sen sederhana saya. Jika Anda entah bagaimana menonaktifkan selinux, Anda mungkin menghadapi masalah ini. untuk menyelesaikan ini, cukup ganti selinux kembali ke normal. buka / etc / selinux / config dan ubah

SELINUX = dinonaktifkan

kembali ke

SELINUX = menegakkan

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.