chcon: não é possível aplicar contexto parcial ao arquivo sem rótulo '/ usr / sbin / xrdp'

9

Sempre que estou tentando executar esta linha para configurar o SELinux para instalar o xrdp neste tutorial:

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

Eu recebo estes erros:

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'

Estou no CentOS 7.2 de 64 bits.

O único
fonte

Respostas:

6

Também estou no CentOS 7, e isso funciona para mim:

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
fonte
1
Enquanto Thomas deu uma resposta bastante abrangente, a solução não é tão direta. Eu tive que fazer um monte de tentativa e erro até que eu alcançado estes dois comandos, que são realmente trabalhando
Adelin
Isso funcionou para mim também em uma caixa de CentOs.
ramires.cabral
4

Seu comando precisa fornecer mais informações. Já foi discutido antes (mas não vejo duplicatas ).

Por exemplo,

Por exemplo, ls -lZfornece essas tags para uma listagem de amostra:

$ 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

e chconestá esperando algo como unconfined_u:object_r:bin_t:s0em seu argumento. A bin_té apenas uma informação parcial.

O procedimento referenciado deve ter funcionado e o uso de chconredundante. Verificando meu CentOS7, eu já xrdpinstalei, e uma lista mostra

$ 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

O system_ucampo é o usuário do SELinux , o object_rcampo é a função , bin_té o tipo e s0é o nível (padrão) . Os arquivos no /usr/sbinseu contexto obtêm um padrão mostrado por semanage fcontext -l(mas há muitas correspondências). Ao seguir o guia, você pode ter removido o padrão para xrdp- ou mesmo para /usr/sbin. No entanto, você pode ser mais explícito no comando, especificando o usuário e a função usando 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

Como alternativa, se os padrões estiverem intactos, mas (por exemplo) você moveu os arquivos em vez de instalá-los, você pode reparar as coisas usando

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

Leitura adicional:

Thomas Dickey
fonte
3
Ainda não entendi. Você pode me dizer qual comando seria a solução para ele? como eu não estou realmente familiarizado com linux Nem SELinux :(
TheOnlyOne 5/16
2

Pode ajudar alguém, então aqui estão meus 2 centavos simples. Se você desativou o selinux de alguma forma, poderá enfrentar esse problema. Para resolver isso, basta alterar o selinux de volta ao normal. abra / etc / selinux / config e altere

SELINUX = desativado

de volta a

SELINUX = imposição

Md. Tawfiqul Bari
fonte