GNU/Linux >> LINUX-Kenntnisse >  >> Linux

semanage-Befehl ändert den Dateikontext nicht

Der Unterschied zwischen semange und chcon besteht darin, dass chcon "temporär" ist, wenn das System die in einer Datei / einem Verzeichnis vorhandenen Kontexte umbenennt, gehen die Kontexte verloren, die Verwendung von semange macht selinux-Kontexte persistent.

Damit semanage funktioniert, müssen Sie den vollständigen Pfad zur Datei oder zum Verzeichnis angeben, deshalbsemanage fcontext -a -t public_content_rw_t upload/ funktioniert nicht, aber semanage fcontext -a -t public_content_rw_t "/var/ftp/upload(/.*)? tut; restorecon erfordert keinen vollständigen Pfad.


Dies ist der Standardkontext

[[email protected] ftp]# ll -Zd upload/
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 upload/

Ich habe diesen Befehl ausprobiert, um den Kontext zu ändern

[[email protected] ftp]# semanage fcontext -a -t public_content_rw_t upload/
[[email protected] ftp]# ll -Zd upload/
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 upload/
[[email protected] ftp]# restorecon -R -v upload
[[email protected] ftp]# ll -Zd upload/
drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 upload/

Es funktioniert nicht, aber dieser Befehl schreibt den Kontext in /etc/selinux/targeted/contexts/files/file_contexts.local Datei

siehe hier

# This file is auto-generated by libsemanage
# Do not edit directly.

upload/    system_u:object_r:public_content_rw_t:s0

Jetzt habe ich diesen Befehl ausprobiert (Working Command )

[[email protected] ftp]# semanage fcontext -a -t public_content_rw_t "/var/ftp/upload(/.*)?"
[[email protected] ftp]# restorecon -R -v upload
restorecon reset /var/ftp/upload context unconfined_u:object_r:public_content_t:s0->unconfined_u:object_r:public_content_rw_t:s0
Now context is changed.
[[email protected] ftp]# ll -Zd upload/
drwxr-xr-x. root root unconfined_u:object_r:public_content_rw_t:s0 upload/

Aber ich weiß wirklich nicht, warum es funktioniert, sehen Sie den Unterschied im Befehl.

Ich habe die Antwort in der Manpage von man ftpd_selinux

semanage fcontext -a -t public_content_rw_t "/var/ftpd/incoming(/.*)?"

Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Konfigurationsbefehl kann nicht ausgeführt werden:„keine solche Datei oder kein solches Verzeichnis“?

  3. mkfs.hfsplus:Befehl nicht gefunden

  4. dos2unix:Befehl nicht gefunden

  5. chmod:Befehl nicht gefunden

nano:Befehl nicht gefunden

Sortieren:Befehl nicht gefunden

sed:Befehl nicht gefunden

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

unix:///var/run/supervisor.sock keine solche Datei

echo oder print /dev/stdin /dev/stdout /dev/stderr