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
Хоча Томас дав досить вичерпну відповідь, рішення не таке однозначне. Мені довелося робити багато спроб і помилок, поки я не дійшов до цих двох команд, які насправді працюють
Аделін

Це також працювало для мене у вікні 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у своєму аргументі. А 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 = примусовий

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.