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(/.*)?"