chcon: nie można zastosować częściowego kontekstu do pliku bez etykiety „/ usr / sbin / xrdp”

9

Ilekroć próbuję wykonać ten wiersz, aby skonfigurować SELinux do instalacji xrdp z tego samouczka:

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

Otrzymuję te błędy:

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'

Jestem na 64-bitowym CentOS 7.2.

TheOnlyOne
źródło

Odpowiedzi:

6

Korzystam także z CentOS 7, a to działa dla mnie:

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
źródło
1
Chociaż Thomas udzielił dość kompleksowej odpowiedzi, rozwiązanie nie jest takie proste. Musiałem zrobić wiele prób i błędów, dopóki nie dotarłem do tych dwóch poleceń, które faktycznie działają
Adelin
To zadziałało również dla mnie w pudełku CentOs.
ramires.cabral
4

Twoje polecenie musi dać więcej informacji. Zostało to omówione wcześniej (ale nie widzę duplikatów ).

Na przykład,

Na przykład ls -lZdaje te tagi dla przykładowego wykazu:

$ 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

i chconspodziewa się czegoś unconfined_u:object_r:bin_t:s0w swoim argumencie. A bin_tjest tylko częściową informacją.

Przywołana procedura powinna była zadziałać, a użycie chconnadmiarowe. Sprawdzam mój CentOS7, akurat się xrdpzainstalowałem i wyświetla się lista

$ 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_uPole jest SELinux użytkownik The object_rrola jest rolą , bin_tjest typ i s0jest (domyślnie) poziom . Pliki w /usr/sbinpobierane są z kontekstu według wzoru pokazanego przez semanage fcontext -l(ale istnieje wiele dopasowań). Postępując zgodnie z tym przewodnikiem, możesz usunąć wzór dla xrdp- a nawet dla /usr/sbin. Możesz jednak wyrazić się dokładniej w poleceniu, określając użytkownika i rolę za pomocą 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

Alternatywnie, jeśli wzorce są nienaruszone, ale (na przykład) pliki zostały przeniesione zamiast ich instalowania, można naprawić rzeczy za pomocą

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

Dalsza lektura:

Thomas Dickey
źródło
3
Nadal tego nie rozumiem. Czy możesz mi powiedzieć, jaka komenda byłaby wówczas poprawką? ponieważ tak naprawdę nie jestem zaznajomiony z linuksem Ani SELinux :(
TheOnlyOne
2

To może komuś pomóc, więc oto moje proste 2 centy. Jeśli w jakiś sposób wyłączyłeś selinux, możesz napotkać ten problem. aby rozwiązać ten problem, po prostu zmień selinux z powrotem na normalny. otwórz / etc / selinux / config i zmień

SELINUX = wyłączone

wrócić do

SELINUX = egzekwowanie

Md. Tawfiqul Bari
źródło