chcon: impossible d'appliquer un contexte partiel au fichier non étiqueté '/ usr / sbin / xrdp'

9

Chaque fois que j'essaie d'exécuter cette ligne pour configurer SELinux pour installer xrdp à partir de ce tutoriel:

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

Je reçois ces erreurs:

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'

Je suis sur CentOS 7.2 64 bits.

Le seul
la source

Réponses:

6

Je suis également sur CentOS 7, et cela fonctionne pour moi:

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
la source
1
Bien que Thomas ait donné une réponse assez complète, la solution n'est pas aussi simple. J'ai dû faire beaucoup d'essais et d'erreurs jusqu'à ce que j'atteigne ces deux commandes, qui fonctionnent réellement
Adelin
Cela a également fonctionné pour moi dans une boîte CentOs.
ramires.cabral
4

Votre commande doit donner plus d'informations. Cela a déjà été discuté (mais je ne vois aucun doublon ).

Par exemple,

Par exemple, ls -lZdonne ces balises pour un exemple de liste:

$ 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

et chconattend quelque chose comme unconfined_u:object_r:bin_t:s0dans son argument. A bin_tn'est qu'une information partielle.

La procédure référencée aurait dû fonctionner, et l'utilisation de chconredondants. En vérifiant mon CentOS7, je me trouve avoir xrdpinstallé, et une liste montre

$ 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

Le system_uchamp est le SELinux utilisateur , le object_rchamp est le rôle , bin_test le genre et s0est (par défaut) niveau . Les fichiers dans /usr/sbinleur contexte proviennent d'un modèle montré par semanage fcontext -l(mais il y a beaucoup de correspondances). En suivant le guide, vous avez peut-être supprimé le motif pour le xrdp- ou même pour /usr/sbin. Cependant, vous pouvez être plus explicite dans la commande, en spécifiant l'utilisateur et le rôle en utilisant 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

Alternativement, si les modèles sont intacts mais (par exemple) vous avez déplacé les fichiers plutôt que de les installer, vous pouvez réparer les choses en utilisant

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

Lectures complémentaires:

Thomas Dickey
la source
3
Je ne comprends toujours pas, pouvez-vous me dire quelle commande serait la solution? comme je ne suis pas vraiment familier avec linux Ni SELinux :(
TheOnlyOne
2

Cela pourrait aider quelqu'un, alors voici mon simple 2 cents. Si vous avez en quelque sorte désactivé selinux, vous pourriez être confronté à ce problème. pour résoudre ce problème, changez simplement le selinux en normal. ouvrez / etc / selinux / config et changez

SELINUX = désactivé

retour à

SELINUX = application

Md. Tawfiqul Bari
la source