J'ai un serveur avec Ubuntu 14.04.
J'ai installé Apache2, php5 et pure-FTPd.
Apache s'exécute donc dans mpm prefork avec un processus appartenant à root et tous les processus enfants appartenant à www-data.
Le fichier/var/www/html appartient à root (-rw-r - r-- 1 racine)
Maintenant, j'ai un utilisateur ftp appelé ftpuser.
Quel serait le meilleur moyen (et plus sûr) pour que l’utilisateur ftp puisse créer et éditer des fichiers sous/var/www/html?
Puis-je changer le propriétaire du groupe/var/www/html en www-data avec un accès en écriture et ajouter ftpuser au groupe www-data?
Si maintenant je veux aussi utiliser mediawiki, il faut parfois un accès en écriture au répertoire/var/www/html. Alors même question: Puis-je changer le propriétaire du groupe de/var/www/html en www-data avec un accès en écriture?
En règle générale, il est déconseillé de donner un accès en écriture au compte exécutant le serveur Web (www-data sous Ubuntu).
Pour votre scénario, je changerais le propriétaire de /var/www/html
en ftpuser avec une lecture-écriture pour lui, en lecture seule pour le groupe et les autres. Apache doit au moins pouvoir lire dans ce répertoire.
PD: Si vous avez plusieurs utilisateurs auxquels donner accès, mettez-les tous dans le même groupe, changez le propriétaire du groupe en ce groupe et donnez également au groupe un accès en lecture et en écriture.
Du point de vue de la sécurité, c'est une mauvaise idée de donner à Apache un accès en écriture à tous les fichiers auxquels il peut accéder. Si quelqu'un est capable de faire de "vilaines choses" avec votre serveur Web, au moins, il ne pourra pas modifier les fichiers directement avec Apache.
N'oubliez pas de sécuriser l'installation du serveur FTP que vous comptez utiliser pour permettre à ftpuser de télécharger des fichiers.
Si Mediawiki doit écrire sur certains fichiers, je ne donnerai à ces fichiers que les droits de lecture-écriture de l'utilisateur www-data (en définissant le propriétaire de ces fichiers sur www-data). Si vous ne pouvez pas prédire quels fichiers doivent être inscriptibles par l'application Web, vous feriez mieux d'isoler cette application dans un sous-dossier de '/ var/www/html'.
Par expérience, je sais que lorsqu'un droit d'accès est nécessaire sur certains fichiers, la documentation de l'application détaille généralement lesquels.
Le serveur Web Apache2 est disponible sous Ubuntu Linux. Pour installer Apache2:
À l'invite du terminal, entrez la commande suivante:
Sudo apt-get install Apache2
Paramètres de base
Si vous souhaitez configurer un nouvel hôte ou site virtuel, copiez ce fichier dans le même répertoire sous le nom que vous avez choisi. Par exemple:
Sudo cp /etc/Apache2/sites-available/default /etc/Apache2/sites-available/mynewsite
Modifiez le nouveau fichier pour configurer le nouveau site en utilisant certaines des directives décrites ci-dessous.
Si Apache n'est pas déjà installé, vous pouvez le faire maintenant en exécutant les commandes suivantes:
Sudo apt-get update
Sudo apt-get install Apache2
C’est tout ce qui est nécessaire pour disposer d’un serveur Web opérationnel. Si vous visitez l'adresse IP de votre SMV dans un navigateur Web, vous obtiendrez la page d'index Apache par défaut:
your_domain_name_or_ip_address
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.
Hiérarchie des fichiers Apache dans Ubuntu et Debian
Sur Ubuntu et Debian, Apache conserve ses principaux fichiers de configuration dans le dossier "/ etc/Apache2":
cd /etc/Apache2
ls -F
Apache2.conf envvars magic mods-enabled/ sites-available/
conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/
En regardant le fichier Apache2.conf
Les principaux détails de la configuration de votre serveur Apache se trouvent dans le fichier "/etc/Apache2/Apache2.conf".
Ce fichier est divisé en trois sections principales: configuration du processus de serveur Apache global, configuration du serveur par défaut et configuration des hôtes virtuels.
Dans Ubuntu et Debian, la majorité du fichier est destinée à des définitions globales et la configuration du serveur par défaut et des hôtes virtuels est gérée à la fin, à l'aide de la directive "Inclure ...".
La directive "Inclure" permet à Apache de lire d’autres fichiers de configuration dans le fichier actuel à l’emplacement où l’instruction apparaît. Le résultat est qu'Apache génère dynamiquement un fichier de configuration global au démarrage.
Si vous faites défiler vers le bas du fichier, il existe un certain nombre d'instructions "Include" différentes. Ces définitions de module de chargement, le document ports.conf, les fichiers de configuration spécifiques du répertoire "conf.d /" et, enfin, les définitions de l'hôte virtuel dans le répertoire "sites-enabled /".
Nous allons nous concentrer sur la première partie du fichier pour apprendre comment Apache définit ses paramètres globaux.
J'espère que ça marche pour toi