chcon: Teilkontext kann nicht auf unbeschriftete Datei '/ usr / sbin / xrdp' angewendet werden

9

Wann immer ich versuche, diese Zeile auszuführen, um SELinux für die Installation von xrdp aus diesem Tutorial zu konfigurieren :

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

Ich bekomme folgende Fehler:

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'

Ich bin auf CentOS 7.2 64 Bit.

Der Einzige
quelle

Antworten:

5

Ich bin auch auf CentOS 7 und das funktioniert für mich:

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
Dünner Phan
quelle
1
Während Thomas eine ziemlich umfassende Antwort gab, ist die Lösung nicht so einfach. Ich musste viel versuchen und Fehler machen, bis ich diese beiden Befehle erreichte, die tatsächlich funktionieren
Adelin
4

Ihr Befehl muss weitere Informationen geben. Es wurde bereits besprochen (aber ich sehe keine Duplikate ).

Zum Beispiel,

Gibt beispielsweise ls -lZdiese Tags für eine Beispielliste an:

$ 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

und chconerwartet so etwas wie unconfined_u:object_r:bin_t:s0in seiner Argumentation. A bin_tist nur eine Teilinformation.

Das referenzierte Verfahren sollte funktioniert haben und die Verwendung von chconredundant. Wenn ich mein CentOS7 überprüfe, habe ich es xrdpinstalliert und eine Liste zeigt es

$ 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

Das system_uFeld ist der SELinux- Benutzer , das object_rFeld ist die Rolle , bin_tist der Typ und s0ist die (Standard-) Ebene . Die Dateien in /usr/sbinerhalten ihren Kontext aus einem Muster, das durch angezeigt wird semanage fcontext -l(es gibt jedoch viele Übereinstimmungen). Wenn Sie der Anleitung folgen, haben Sie möglicherweise das Muster für xrdp- oder sogar für entfernt /usr/sbin. Sie können im Befehl jedoch expliziter sein, indem Sie den Benutzer und die Rolle mit chconfolgenden Angaben angeben :

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

Wenn die Muster intakt sind, Sie aber (zum Beispiel) die Dateien verschoben haben, anstatt sie zu installieren, können Sie alternativ Dinge mit reparieren

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

Weiterführende Literatur:

Thomas Dickey
quelle
3
Ich verstehe es immer noch nicht. Kannst du mir sagen, welcher Befehl dann die Lösung dafür sein würde? da ich mit Linux nicht wirklich vertraut bin Weder SELinux :(
TheOnlyOne
2

Es könnte jemandem helfen, also hier sind meine einfachen 2 Cent. Wenn Sie Selinux irgendwie deaktiviert haben, kann dieses Problem auftreten. Um dies zu beheben, ändern Sie einfach den Selinux wieder auf Normal. öffne / etc / selinux / config und ändere

SELINUX = deaktiviert

zurück zu

SELINUX = erzwingen

Md. Tawfiqul Bari
quelle