Je suis nouveau sur SELinux. est venu de debian. Je veux donner httpd
accès à un répertoire.
Le navigateur d'alertes SELinux suggère:
# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp
Je ne pouvais pas comprendre comment fonctionne cette commande. Je ne spécifie aucun chemin de répertoire nulle part. comment sait-il quel répertoire autoriser httpd?
Auparavant, j'ai utilisé grep pour extraire le texte de la sortie ou du fichier. Mais ici grep est utilisé sur un processus. Que je n'ai pas compris.
Quelle est également la solution réelle. Si je veux donner à httpd un accès en écriture à un répertoire?
fedora
rhel
apache-httpd
selinux
Neel Basu
la source
la source
Réponses:
Voici comment modifier définitivement le contexte d'un répertoire:
Voici quelques informations supplémentaires sur les différents contextes pour httpd:
RHEL 7: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html
RHEL 6: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html
la source
SELinux utilise des attributs étendus qui peuvent être ajoutés aux structures de répertoires sur le disque. Pensez-y si ces métadonnées. Les listes de contrôle d'accès (ACL) en sont un autre.
Les attributs étendus que vous devez ajouter à un répertoire sont appelés contextes et SELinux agit comme un flic de trafic, en s'assurant qu'un exécutable qui a certains contextes est autorisé à accéder au système de fichiers en fonction de ces contextes. Vous pouvez voir ce qui est disponible dans l'annuaire en utilisant le
-Z
commutateur versls
.Ici, vous pouvez voir que ces répertoires ont le contexte
httpd_sys_script_exec_t:s0
dans le répertoirecgi-bin
. et lehtml
dir. ahttpd_sys_content_t:s0
.Vous pouvez les ajouter en utilisant la
chcon
commande:La commande que vous demandez chargera simplement le module,
mypoll.pp
je ne pense pas qu'elle accordera des autorisations à quoi que ce soit, il y a probablement plus de messages dans leaudit.log
qui vous manque avec votre commande, qui vous diront plus en détail ce dont vous avez besoin faire pour autoriser l'accès.Je vous encourage à prendre un peu de temps et à vous familiariser avec SELinux. C'est déroutant au début, mais c'est généralement simple, après y avoir passé un peu de temps. Consultez les ressources ci-dessous pour commencer.
Références
la source
chcon -R -t httpd_sys_content_t <dir>