chcon: ไม่สามารถใช้บริบทบางส่วนกับไฟล์ที่ไม่มีป้ายกำกับ '/ usr / sbin / xrdp'


9

เมื่อใดก็ตามที่ฉันพยายามรันบรรทัดนี้เพื่อกำหนดค่า SELinux เพื่อติดตั้ง xrdp จากบทช่วยสอนนี้ :

# 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 บิต

คำตอบ:


6

ฉันใช้ 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

1
ในขณะที่โทมัสให้คำตอบที่ครอบคลุมสวยการแก้ปัญหาไม่ใช่เรื่องง่าย ฉันต้องลองทำมากมายและผิดพลาดจนกว่าจะถึงสองคำสั่งซึ่งใช้งานได้จริง
Adelin

ที่ทำงานให้ฉันด้วยในกล่อง CentOs
ramires.cabral

4

คำสั่งของคุณต้องให้ข้อมูลเพิ่มเติม มีการพูดคุยกันก่อนหน้านี้ (แต่ฉันไม่เห็นรายการที่ซ้ำกัน )

ตัวอย่างเช่น,

ตัวอย่างเช่น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ในการโต้แย้ง A 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ฟิลด์เป็น SELinux ผู้ใช้ที่object_rสนามเป็นบทบาท , bin_tเป็นชนิดและs0เป็น (เริ่มต้น) ระดับ ไฟล์ใน/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

อ่านเพิ่มเติม:


3
ฉันยังไม่เข้าใจคุณช่วยบอกฉันได้ไหมว่าคำสั่งนั้นจะแก้ไขได้อย่างไร เพราะฉันไม่คุ้นเคยกับ linux ทั้ง SELinux :(
TheOnlyOne

2

มันอาจช่วยใครซักคนดังนั้นนี่คือ 2 เซนต์ง่าย ๆ ของฉัน หากคุณปิดใช้งาน selinux คุณอาจประสบปัญหานี้ เพื่อแก้ไขปัญหานี้เพียงแค่เปลี่ยน selinux กลับสู่ปกติ เปิด / etc / selinux / config และการเปลี่ยนแปลง

SELINUX = คนพิการ

กลับไป

SELINUX = บังคับใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.