Ваша команда должна дать больше информации. Это обсуждалось ранее (но я не вижу дубликатов ).
Например,
Например, 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
Дальнейшее чтение: