Conflit selinux/apache

Fermé
Tanganaka - 30 juin 2016 à 12:13
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 4 juil. 2016 à 01:11
Bonjour,

je viens d'installer Centos 7 sur une machine
j'ai installé samba
puis créer un utilisateur user avec comme répertoire de base /var/www/html afin que ce dernier puise accéder et modifier les site web
j'ai ensuite changé le droit du répertoire html/

"chmod -R 0777 html/"

puis ajouté une règle pour selinux pour autoriser l'accès via samba

"chcon -t samba_share_t html/"

modifié smb.conf
"[www]
path = /var/www/html
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes"

redémarré smb & nmb

changé le propriétaire et le groupe du répertoire

"chown -R user:smbgrp html/"

l'accès au répertoire fonctionne parfaitement mais depuis la configuration de Samba j'ai
"Forbidden

You don't have permission to access ..." sur mes pages web !!?? oO

en étudiant les logs j'ai vu qu'il y avait un souci avec selinux

d'ailleurs quand je fait "setenforce 0" j'accède sans problème aux pages web ...

Quelqu un saurait il comment corriger ce problème ?

5 réponses

mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
Modifié par mamiemando le 1/07/2016 à 08:10
Bonjour,

Mon premier conseil serait de ne jamais régler sous linux un problème à coup de
chmod 777
. En faisant ça tu as dit que n'importe qui pouvait altérer ces fichiers. De manière générale : on ne relâche jamais les droits sur un fichier sous linux, ça revient généralement à ouvrir un trou de sécurité, on augmente les droits de l'utilisateur qui a besoin d'y accéder (si c'est légitime).

La "bonne nouvelle" c'est que le "conflit" dont tu parles va t'obliger à faire les choses correctement.

En l'occurrence il faut que tu regardes comment gérer les droits samba.
https://doc.ubuntu-fr.org/system-config-samba

Vérifie le workgroup, que l'utilisateur est bien dans le groupe plugdev, et que le partage est configuré pour être accessible en écriture.
https://doc.ubuntu-fr.org/samba_smb.conf
https://forum.ubuntu-fr.org/viewtopic.php?id=392295

Personnellement je préconise une approche plus simple à mettre en place :
ssh
:

sudo apt-get install ssh


L'utilisateur windows se connecte en ssh via putty ou transfère des fichiers avec winscp. Il faut juste que l'utilisateur linux qui sera utilisé pour la connexion ssh ait des droits en lecture / écriture sur /var/www/html.
https://www.mistra.fr/tutoriel-linux-profils-et-droits.html

Bonne chance
0
Merci pour ta réponse, je vais aller voir tes différents liens.

Mais mon problème ne se situe pas au niveau de Samba : mon utilisateur navigue et peut éditer les fichiers et dossiers dans /var/www/html/
mon problème est au niveau de selinux qui semble t il interdit l'acces web aux pages depuis que j'ai configuré samba.

si je mets setenforce 0 => je peux accéder aux pages web via un navigateur
si je remets setenforce 1 => j'ai une erreur 403 ...
0
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
3 juil. 2016 à 14:05
Oui ok je vois ton problème maintenant. Mais en fait ma réponse reste la même : au lieu d'utiliser samba utilise winscp c'est plus simple ? Car sinon il faut entrer dans selinux et comprendre comment définir les bonnes policy...
https://www.techrepublic.com/article/solutionbase-demystifying-selinux/

Une autre solution pour définir les bons droits consisterait à utiliser des acl.
https://doc.ubuntu-fr.org/acl

Bonne chance
0
le problème c que l'utilisateur final est sous windows et veut pouvoir modifier le site à la volée et que les autres utilisateurs puissent voir en live l'évolution du site ...
c pas très simple pour un développeur de devoir
1 - modifier les pages
2 - les contrôler en local
3 - les mettre "en ligne" (alors que c déjà un serveur de test)
4 - avertir les autres utilisateurs que c en "ligne"
5 - une fois que c validé recommencer le process sur le serveur de prod

en fait mon souci c de dire a selinux ce répertoire est à la fois un répertoire samba ET un répertoire httpd .....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 7 802
4 juil. 2016 à 01:11
Je maintiens que la solution sur ssh est plus simple à mettre en place : tu peux monter un dossier par sshfs au même titre que ce que tu aurais fait par samba.
https://softwarerecs.stackexchange.com/questions/13875/windows-sshfs-sftp-mounting-clients

Ceci dit libre à toi de rester sur samba, c'est juste que tu devras du coup comprendre la syntaxe pour définir la politique de droit selinux appropriée (voir lien de mon message précédent). Personnellement ça me paraît bien compliqué mais pourquoi pas...

Bonne chance
0