chcon: không thể áp dụng bối cảnh một phần cho tệp không được gắn nhãn '/ usr / sbin / xrdp'


9

Bất cứ khi nào tôi đang cố gắng thực thi dòng này để định cấu hình SELinux để cài đặt xrdp từ hướng dẫn này :

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

Tôi nhận được những lỗi này:

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'

Tôi đang dùng CentOS 7.2 64 bit.

Câu trả lời:


5

Tôi cũng trên CentOS 7 và điều này hiệu quả với tôi:

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
Trong khi Thomas đưa ra một câu trả lời khá toàn diện, giải pháp không đơn giản như vậy. Tôi đã phải làm rất nhiều lần thử và lỗi cho đến khi tôi đạt được hai lệnh này, chúng thực sự hoạt động
Adelin

4

Lệnh của bạn phải cung cấp thêm thông tin. Nó đã được thảo luận trước đây (nhưng tôi thấy không có bản sao ).

Ví dụ,

Ví dụ: ls -lZđưa ra các thẻ này cho danh sách mẫu:

$ 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đang mong đợi một cái gì đó giống như unconfined_u:object_r:bin_t:s0trong lập luận của nó. A bin_tchỉ là một phần thông tin.

Các thủ tục tham chiếu nên đã làm việc và sử dụng chcondự phòng. Kiểm tra CentOS7 của tôi, tôi tình cờ đã xrdpcài đặt và một danh sách hiển thị

$ 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

Các system_ulĩnh vực là SELinux dùng , các object_rlĩnh vực là vai trò , bin_tloạis0là (mặc định) mức . Các tệp trong /usr/sbinbối cảnh của chúng từ một mẫu được hiển thị bởi semanage fcontext -l(nhưng có rất nhiều kết quả khớp). Theo hướng dẫn, bạn có thể đã xóa mẫu cho xrdp- hoặc thậm chí cho /usr/sbin. Tuy nhiên, bạn có thể rõ ràng hơn trong lệnh, bằng cách chỉ định người dùng và vai trò bằng cách sử dụng 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

Ngoài ra, nếu các mẫu vẫn còn nguyên nhưng (ví dụ) bạn đã di chuyển các tệp thay vì cài đặt chúng, bạn có thể sửa chữa mọi thứ bằng cách sử dụng

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

Đọc thêm:


3
Tôi vẫn không hiểu, bạn có thể cho tôi biết lệnh nào sẽ là bản sửa lỗi cho nó không? vì tôi không thực sự quen thuộc với linux Cả Selinux :(
TheOnlyOne

2

Nó có thể giúp được ai đó, vì vậy đây là 2 xu đơn giản của tôi. Nếu bạn bằng cách nào đó đã vô hiệu hóa selinux, bạn có thể phải đối mặt với vấn đề này. Để giải quyết vấn đề này, chỉ cần thay đổi selinux trở lại bình thường. mở / etc / selinux / config và thay đổi

SELINUX = bị vô hiệu hóa

Quay lại

SELINUX = thi hành

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.