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.

Satu-satunya
sumber

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
Thinh Phan
sumber
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:

Thomas Dickey
sumber
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

Md. Tawfiqul Bari
sumber