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 = принуждени

Гора Тауфик Бари
источник