[Plan du site]
Vous êtes ici ---
> Le Site du Zéro
> Les tutoriels
> Non-Officiels
> Site Web
> Serveur
> Un serveur d'hébergement multiutilisateur sous Linux
> Lecture du tutoriel
Un serveur d'hébergement multiutilisateur sous Linux
Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Bonjour !
Le but de ce tuto est de vous apprendre à installer un serveur Linux qui permette l'hébergement de plusieurs utilisateurs. Chaque utilisateur aura un accès FTP, un dossier personnel, et un dossier web.
Je vous souhaite une bonne lecture !
Il faut connaître les bases du shell linux (cd, ls, cp, mv, etc...) pour comprendre le tuto.
Il y a un très bon tuto là :
Apprenez le Shell, écrit par
Jarvis.
Ce tuto se fait en console : vous n'avez donc pas besoin d'installer un environnement graphique (KDE, Gnome, ...).
Cependant, vous pouvez quand même le suivre si vous en avez un déjà installé : il suffit d'ouvrir un terminal (dans le menu Konsole, Terminal...).
Les opérations que vous allez réaliser nécessitent d'être faites en temps que
root.
L'utilisateur
root a accès à tout, c'est le boss.

Il y a 2 manières de s'identifier :
- si vous n'avez pas d'environnement graphique, vos identifiants vous seront demandés après le démarrage de votre ordinateur serveur ;
- si vous avez un environnement graphique, vous devez d'abord ouvrir une console (comme indiqué plus haut) et taper la commande Code : Console qui vous demandera votre mot de passe root (renseigné à l'installation du système). (Les droits root iront à la console que vous avez ouverte ; si vous la fermez, il faudra retaper cette commande !)
Ceci étant dit, nous pouvons commencer !
Avant toute chose, assurez-vous d'avoir un fichier
/etc/apt/sources.list bien configuré et un système à jour !
Le fichier sources.list contient la liste des dépôts où se trouvent les applications que le système utilise ou que vous utilisez !
Il faut donc qu'il soit complet pour ne pas passer à côté des mises à jour importantes, qu'elles soient de nature à augmenter la sécurité ou à corriger des bugs.
Voici un
exemple de
sources.list :
Code : Autre1
2
3
4
| #Attention, ce sources.list est fait pour la version "testing" de Debian, c'est-à-dire la future version stable.
#Les paquets présents dans ces dépôts sont testés, mais pas totalement sûrs du point de vue de la stabilité.
deb <lien url="http://mir1.ovh.net/debian/">http://mir1.ovh.net/debian/</lien> testing main non-free contrib
deb <lien url="http://security.debian.org/">http://security.debian.org/</lien> testing/updates main contrib non-free |
Pour la version stable, il faut remplacer les testing par des etch.
Il suffit ensuite de taper en console deux commandes pour avoir un système à jour !
Code : Console | aptitude update
aptitude full-upgrade |
aptitude full-upgrade met à jour la distribution. Si vous ne souhaitez pas faire ça, contentez-vous de aptitude safe-upgrade.
Il est possible que le noyau soit mis à jour également. Dans ce cas-là, il faut redémarrer pour charger le nouveau noyau (utilisez la commande reboot).
Par souci de simplicité, on va considérer que l'on est dans un réseau local qui contient notre serveur et un autre ordinateur qui permettra de tester le serveur.
On va dire que l'adresse IP du serveur sera
192.168.0.100, même si ça n'a pas d'importance pourvu qu'on la connaisse.
Nous allons commencer par installer le serveur web !
On va donc installer
Apache 2 à l'aide de cette commande (toutes les commandes sont à faire en tant que
root) :
Code : Console
Il faut accepter les dépendances de apache2 en tapant "o" (pour oui) puis Entrée.
Maintenant qu'Apache est installé, on va le tester !
À partir de votre autre ordinateur, lancez un navigateur web et accédez à l'URL du serveur :
http://192.168.0.100.
Logiquement, vous obtenez un énorme
It works!
On va aller dans un des fichiers de configuration :
Code : Console | nano /etc/apache2/sites-available/default |
Il suffira d'ajouter un dièse # au début de la ligne
RedirectMatch ^/$ /apache2-default/ pour la commenter.
On redémarre Apache :
Code : Console | /etc/init.d/apache2 restart |
On réessaye d'aller sur
http://192.168.0.100.
Et là, magie ! Au lieu d'avoir le message de tout à l'heure, on a une arborescence qui contient uniquement le dossier
apache2-default.
Ce dossier étant inutile, on va le supprimer

.
Par défaut, Apache va chercher les pages dans
/var/www/.
On fait donc :
Code : Console | rm -r /var/www/apache2-default |
Maintenant que Apache 2 fonctionne, occupons-nous du mod
UserDir !
Le mod
UserDir est un mod installé par défaut avec Apache 2. Il permet, une fois configuré, de faire correspondre une URL de type
http://192.168.0.100/~utilisateur à un dossier
/home/utilisateur, par exemple.
L'avantage est qu'il ne faut pas changer la configuration d'Apache 2 à chaque fois qu'on ajoute un utilisateur : à chaque fois qu'une URL comme la précédente sera appelée, Apache 2 vérifiera si le dossier correspondant existe sur le serveur. S'il existe, on accèdera à son contenu, sinon, on obtiendra l'erreur 404.
Pour commencer, activons le mod avec la commande suivante :
Code : ConsoleUn message nous avertit qu'il faut recharger la configuration d'Apache, mais comme nous allons la modifier par la suite, nous la rechargerons plus tard.
Il faut ensuite configurer ce mod. Voici donc le fichier
/etc/apache2/mods-available/userdir.conf tel que vous devez l'avoir par défaut :
Code : Autre1
2
3
4
5
6
7
8
9
| <IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
</IfModule> |
UserDir public_html signifie que l'adresse
http://192.168.0.100/~utilisateur affichera le contenu du dossier
[Répertoire home de utilisateur]/public_html. L'utilisateur doit donc être un utilisateur système valide !!
Pour ne pas avoir à créer à chaque fois un utilisateur système, on peut remplacer cette ligne par
UserDir /home/*/public_html. Du coup, il suffit juste de créer un dossier du nom de l'utilisateur dans
/home !
UserDir disabled [noms d'utilisateurs] permet de désactiver la fonctionnalité
UserDir pour certains utilisateurs.
Par défaut, c'est désactivé pour root, sinon on aurait accès au dossier /root (la configuration tient compte du dossier home de chaque utilisateur système, dont root).
Le reste du fichier de configuration sert à définir les options sur les dossiers des utilisateurs.
Voici donc une version de ce même fichier plus optimisée pour nos besoins

:
Code : Autre1
2
3
4
5
6
7
8
9
| <IfModule mod_userdir.c>
UserDir /home/*/public_html
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes IncludesNoExec
IndexOptions FoldersFirst FancyIndexing IgnoreCase
</Directory>
</IfModule> |
Les 3
IndexOptions que j'ai ajoutées permettent un affichage plus sympathique de la liste des fichiers (lorsqu'il n'y a pas de fichier
index dans le dossier de l'utilisateur).
Pour plus d'informations, voir le tuto
Personnaliser son FTP de
Thunderseb.
Vous pouvez maintenant recharger la configuration d'Apache 2 et tester tout ça !!
Code : Console | /etc/init.d/apache2 reload |
À ce stade, nous pouvons donc créer un utilisateur
web en créant 2 dossiers :
- le dossier /home/utilisateur qui sera la partie privée de l'utilisateur ;
- le dossier /home/utilisateur/public_html qui sera la partie publique accessible avec l'adresse http://192.168.0.100/~utilisateur.

PHP5 ne résistera pas très longtemps à un simple
Code : Console
Il faut redémarrer Apache 2 !
Code : Console | /etc/init.d/apache2 restart |
Cette étape est rapide puisqu'une fois PHP5 installé, nos utilisateurs
web peuvent l'utiliser.
Vous pouvez reprendre le test que nous avons fait tout à l'heure pour vérifier.
Cependant, si vous poussez un peu ces tests, vous allez vous apercevoir (avec stupeur

) qu'il est parfaitement possible pour un utilisateur d'écrire un script PHP qui va voir chez le voisin... ce qui pose un gros problème de sécurité !
Nous allons donc devoir enfermer le PHP de chaque utilisateur dans son dossier respectif. Pour cela, il suffit d'ajouter une petite ligne de rien du tout dans notre fichier
/etc/apache2/mods-available/userdir.conf. On obtient ceci :
Code : Autre1
2
3
4
5
6
7
8
9
10
| <IfModule mod_userdir.c>
UserDir /home/*/public_html
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes IncludesNoExec
IndexOptions FoldersFirst FancyIndexing IgnoreCase
php_admin_value open_basedir ".." # <-- voici la nouvelle ligne
</Directory>
</IfModule> |
Et là, je vous dis que le problème n'est pas résolu !
En effet, il existe une fonction PHP nommée
shell_exec() qui permet d'exécuter des commandes shell (sous l'utilisateur
www-data, l'utilisateur d'Apache 2).
Il est donc possible de créer un script PHP dans son répertoire d'utilisateur web :
Code : PHP1 | <?php echo shell_exec('ls /home'); ?>
|
On a donc accès à la liste des utilisateurs !
Heureusement, PHP est doté une fonction, le
safe_mode, qui permet d'interdire les fonctions de ce type. Notre fichier
/etc/apache2/mods-available/userdir.conf devient donc :
Code : Autre1
2
3
4
5
6
7
8
9
10
11
| <IfModule mod_userdir.c>
UserDir /home/*/public_html
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes IncludesNoExec
IndexOptions FoldersFirst FancyIndexing IgnoreCase
php_admin_value safe_mode "1"
php_admin_value open_basedir ".."
</Directory>
</IfModule> |
Et voilà ! Nos utilisateurs peuvent mettre du PHP dans leur dossier
public_html sans pour autant poser de problèmes de sécurité.
Il est l'heure d'installer MySQL, pour que nos utilisateurs aient leur base de données (MySQL servira également pour vsFTPd).
Code : Console | aptitude install mysql-server php5-mysql |
On exécute dans la foulée le script fourni avec MySQL qui permet de sécuriser la configuration de ce dernier :
Code : Console | mysql_secure_installation |
Histoire de ne pas tout avoir à faire en console, on installe PHPMyAdmin :
Code : Console | aptitude install phpmyadmin |
Il vous sera demandé quel est le serveur web ! Choisir apache2 avec les flèches directionnelles, cocher avec Espace, et valider avec Entrée.
Allez ensuite avec un navigateur à l'adresse
http://192.168.0.100/phpmyadmin. Mettez la langue en français, le nom d'utilisateur (
root) et votre mot de passe MySQL.
Direction la page
Privilèges, puis
Ajouter un utilisateur. Indiquez
ftp comme nom d'utilisateur, sélectionnez
Local dans la liste déroulante
Serveur, et indiquez un mot de passe, compliqué si possible, car il ne sera utilisé que par des scripts (vous pouvez utiliser le bouton
Générer). Cochez le bouton radio
Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base et validez.
Retournez sur la page
Privilèges (il y a un onglet en haut), et cliquez sur
recharger les privilèges.
MySQL est maintenant installé, configuré, et nous avons créé un utilisateur et une base de données pour le serveur FTP...
On installe maintenant vsFTPd et le module d'authentification par MySQL !
Code : Console | aptitude install vsftpd libpam-mysql |
Il faut supprimer quelques éléments de la configuration par défaut :
Code : Console | deluser --remove-home ftp |
Remplaçons le fichier
/etc/vsftpd.conf par celui-ci :
Code : Autre1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| # Ceci configure VSFTPd en mode "standalone"
listen=YES
# On désactive les connexions anonymes et on active les non-anonymes (c'est le cas des utilisateurs virtuels) :
anonymous_enable=NO
local_enable=YES
# Pour des raisons de sécurité, on interdit toute action d'écriture :
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
# "guest_enable" active les utilisateurs virtuels
# "guest_username" fait correspondre tous les utilisateurs virtuels à l'utilisateur d'Apache 2
guest_enable=YES
guest_username=www-data
# On définit les droits par défaut des fichiers uploadés
anon_umask=022
# On enferme les utilisateurs virtuels dans leur dossier
chroot_local_user=YES
# On définit le nombre maximum de sessions à 100
# On définit le nombre maximum de sessions par IP à 5
max_clients=100
max_per_ip=5
####################################
# Debian customization #
# (ou adoptons la Debian attitude) #
####################################
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default. These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
# Permet d'utiliser les configurations individuelles pour chaque utilisateur
user_config_dir=/etc/vsftpd
# Définir la plage de ports utilisée par le mode passif
pasv_min_port=20000
pasv_max_port=20050
# Message d'accueil
ftpd_banner=Bienvenue sur ce serveur FTP !
# Autoriser les utilisateurs virtuels à changer les permissions de leurs fichiers
chmod_enable=YES
virtual_use_local_privs=YES
# Utiliser le temps local et non pas le temps universel (UTC)
use_localtime=YES
# Activation du log
xferlog_enable=YES
log_ftp_protocol=YES |
Ce fichier étant commenté, je ne m'étends pas dessus.
Il faut créer le dossier qui contiendra les fichiers de configuration pour chaque utilisateur :
Code : Console
vsFTPd va devoir accéder à la liste des utilisateurs, qui sera placée dans notre base de donnée MySQL. Le module pam-mysql permet de faire ça.
On va tout d'abord retourner sur PHPMyAdmin, se logger avec l'utilisateur
ftp, et sélectionner la base de donnée
ftp dans le menu de gauche. Ensuite, l'onglet
SQL permet de coller et d'exécuter ce code :
Code : SQL1
2
3
4 | CREATE TABLE `ftp`.`users` (
`name` TEXT NOT NULL ,
`pass` TEXT NOT NULL
) ENGINE = MYISAM
|
Notre table étant créée, on va remplacer le fichier
/etc/pam.d/vsftpd par le suivant (qui contient les informations d'accès à cette table) :
Code : Autre1
2
| auth required pam_mysql.so host=localhost user=ftp passwd=votre_pass db=ftp table=users usercolumn=name passwdcolumn=pass crypt=1
account required pam_mysql.so host=localhost user=ftp passwd=votre_pass db=ftp table=users usercolumn=name passwdcolumn=pass crypt=1 |
N'oubliez pas de remplacer le mot de passe de l'utilisateur MySQL ftp (2 fois) dans ce fichier !
On redémarre le serveur FTP !
Code : Console | /etc/init.d/vsftpd restart |
On va maintenant ajouter un utilisateur pour tester tout ça !
On repasse sur PHPMyAdmin (toujours avec l'utilisateur
ftp) et on va ajouter un nouvel enregistrement à notre table fraîchement créée (onglet
Insérer après avoir sélectionné la table). On renseigne un nom d'utilisateur et un mot de passe. Le mot de passe
doit être crypté ! Il suffit de sélectionner
ENCRYPT dans la liste déroulante, lors de l'insertion.
Il faut maintenant créer le fichier de configuration de l'utilisateur :
/etc/vsftpd/[nom d'utilisateur].
Code : Autre1
2
3
4
5
6
7
8
| anon_world_readable_only=NO
local_root=/home/utilisateur
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
hide_file=(none)
force_dot_files=YES |
Pour le détail, je vous laisse la page de documentation :
http://vsftpd.beasts.org/vsftpd_conf.html. Sachez qu'en gros, on définit le dossier dans lequel l'utilisateur est enfermé, on l'autorise à y écrire, et on lui permet de voir les fichiers cachés.
Et pour finir, le plus important : on crée le dossier de l'utilisateur (avec les bons droits !).
Code : Console | mkdir /home/[nom d'utilisateur]
chown -R www-data.www-data /home/[nom d'utilisateur]
chmod -R 700 /home/[nom d'utilisateur] |
Vous pouvez maintenant tenter une connexion à votre serveur FTP !
Le plus gros a été fait ! L'idéal serait maintenant de créer des scripts qui permettent d'ajouter / d'enlever des utilisateurs à notre place.
Voici maintenant ma solution :
adduser.sh
Code : Bash 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 | #!/bin/sh
# Informations à compléter
pass_mysql_ftp=mot_de_passe_de_l'utilisateur_mysql_"ftp"
pass_mysql_root=mot_de_passe_de_l'utilisateur_mysql_"root"
# On demande la saisie d'un nom d'utilisateur et du mot de passe (2 fois)
echo -n "Nom d'utilisateur : "
read nom
echo "Mot de passe : "
read -s pass
echo "Mot de passe (le retour) : "
read -s pass2
# On vérifie que les 2 mots de passe soient identiques
if test $pass = $pass2 ; then
# On vérifie qu'il n'existe pas déjà un autre utilisateur du même nom
if test -d /home/$nom ; then
echo "L'utilisateur existe deja"
else
# On crée les dossiers et on fixe les droits
mkdir /home/$nom
mkdir /home/$nom/public_html
chown -R www-data.www-data /home/$nom
chmod -R 700 /home/$nom
# On crée le fichier de configuration pour vsFTPd
echo "anon_world_readable_only=NO" > /etc/vsftpd/$nom
echo "local_root=/home/$nom" >> /etc/vsftpd/$nom
echo "write_enable=YES" >> /etc/vsftpd/$nom
echo "anon_upload_enable=YES" >> /etc/vsftpd/$nom
echo "anon_mkdir_write_enable=YES" >> /etc/vsftpd/$nom
echo "anon_other_write_enable=YES" >> /etc/vsftpd/$nom
echo "hide_file=(none)" >> /etc/vsftpd/$nom
echo "force_dot_files=YES" >> /etc/vsftpd/$nom
# On ajoute l'utilisateur dans la base de données
mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "INSERT INTO users (name ,pass) VALUES ('$nom', ENCRYPT( '$pass' ));"
# On crée une base de données où l'utilisateur est tout-puissant
mysql -u root -p"$pass_mysql_root" -e "CREATE USER '$nom'@'localhost' IDENTIFIED BY '$pass';GRANT USAGE ON *.* TO '$nom'@'localhost' IDENTIFIED BY '$pass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS $nom;GRANT ALL PRIVILEGES ON $nom.* TO '$nom'@'localhost';"
echo "Utilisateur ajoute avec succes"
fi
else
echo "Les 2 mots de passe ne sont pas identiques"
fi
|
deluser.sh
Code : Bash 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 | #!/bin/sh
# Informations à compléter
pass_mysql_ftp=mot_de_passe_de_l'utilisateur_mysql_"ftp"
pass_mysql_root=mot_de_passe_de_l'utilisateur_mysql_"root"
# On demande la saisie du nom de l'utilisateur à supprimer
echo -n "Nom d'utilisateur : "
read nom
# On vérifie qu'il existe
if test -d /home/$nom ; then
# On le supprime de la liste des utilisateurs de vsFTPd
mysql -u ftp -p"$pass_mysql_ftp" -D ftp -e "DELETE FROM users WHERE name='$nom';"
# On supprime son compte et sa base de donnée MySQL
mysql -u root -p"$pass_mysql_root" -e "DROP USER $nom@'localhost';DROP DATABASE IF EXISTS $nom;"
# On supprime son fichier de configuration vsFTPd
rm -f /etc/vsftpd/$nom
# On supprime son dossier
rm -fr /home/$nom
echo "Utilisateur DETRUIT"
else
echo "L'utilisateur n'existe pas"
fi
|
Vous voilà donc en possession d'un système d'hébergement multiutilisateurs !
Je vous propose quelques annexes, pour préciser ou améliorer certains points.
Sécurité
Il faut faire attention à ce que seul l'utilisateur root puisse lire les scripts que nous avons créés, car ils contiennent des mots de passe ! De plus, on pourrait créer des utilisateurs sans être root...
On va donc résumer quels sont nos fichiers / dossiers et leurs permissions :
- /home/utilisateur : Propriétaire www-data / Groupe www-data / Permissions 700 (www-data peut tout faire) ;
- /etc/vsftpd : Propriétaire root / Groupe www-data / Permissions 740 (root peut tout faire ; www-data peut lire) ;
- /etc/vsftpd/utilisateur : Propriétaire root / Groupe www-data / Permissions 740 ;
- /root/adduser.sh : Propriétaire root / Groupe root / Permissions 700 ;
- /root/deluser.sh : Propriétaire root / Groupe root / Permissions 700.
Changer le propriétaire et le groupe d'un fichier :
chown proprietaire.groupe fichier
Changer le propriétaire et le groupe d'un dossier (et de son contenu) :
chown -R proprietaire.groupe dossier
Changer les permissions d'un fichier :
chmod permissions fichier
Changer les permissions d'un dossier (et de son contenu) :
chmod -R permissions dossier
Administrer les fichiers des utilisateurs
Posons deux choses :
- vous voulez pouvoir gérer les fichiers des utilisateurs situés dans le dossier /home avec un client FTP ;
- Vous voulez aussi pouvoir gérer votre page d'accueil qui, elle, se trouve dans /var/www.
Une solution serait de créer 2 comptes FTP manuellement, un dont le dossier est
/home et l'autre
/var/www.
Seulement, on ne va pas tout compliquer avec 2 comptes FTP lorsqu'il ne pourrait n'y en avoir qu'un !
On va donc créer un compte
admin dont le dossier est
/home. Il ne faut surtout pas utiliser le script, mais bien créer le fichier de configuration
/etc/vsftpd/admin à la main et ajouter l'utilisateur
admin dans la base de donnée avec PHPMyAdmin.
Nous avons donc un compte FTP
admin pouvant naviguer et écrire dans les dossiers des utilisateurs.
On va maintenant monter le dossier
/var/www dans le dossier
/home/www que nous créerons. Le dossier
/home/www sera donc une sorte de redirection vers
/var/www.
On crée le dossier
/home/www et on règle ses permissions, ainsi que celle de
/var/www :
Code : Console | mkdir /home/www
chown -R www-data.www-data /home/www
chmod -R 700 /home/www
chown -R www-data.www-data /var/www
chmod -R 700 /var/www |
On va ensuite modifier le fichier
/etc/fstab, qui contient les informations sur les montages à faire au démarrage, et insérer la ligne suivante :
Code : Autre1
| /var/www /home/www none bind 0 0 |
On n'a plus qu'à faire un petit
mount -a pour que les modifications soient appliquées.
On a alors accès à la racine du serveur web avec notre compte
admin !
Voir l'espace disque occupé
Encore une idée d'amélioration : créer un script permettant de connaître l'espace disque occupé par chaque utilisateur.
La solution qui me semble la meilleure est tout simplement d'afficher séparément la taille de tous les dossiers contenus dans le dossier
/home.
Voici donc une application de cette solution :
Code : Bash 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | #!/bin/sh
# Pour chaque dossier contenu dans /home
for dir in /home/* ; do
# Si le dossier n'est pas /home/www
if test $dir != "/home/www" ; then
# On affiche sa taille
du -hs $dir
else
du -hs /var/www
fi
done
|
Ce script ne tient pas compte de la taille de la base de données de l'utilisateur.
Installer des extensions PHP
Si vous avez besoin d'installer certaines extensions à PHP, comme GD pour pouvoir traiter des images par exemple, il suffit juste de l'installer avec
aptitude de la manière suivante :
Code : Console
Les fichiers .htaccess
Les fichiers
.htaccess permettent de modifier la configuration d'Apache 2 de manière exceptionnelle, c'est-à-dire seulement pour le dossier dans lequel le fichier
.htaccess se trouve et sans pour autant avoir à modifier le fichier de configuration principal d'Apache 2.
Pour résumer, un
.htaccess peut permettre à un utilisateur de modifier la configuration d'Apache 2, avec certaines limites.
Ces limites sont définies dans notre fichier
/etc/apache2/mods-available/userdir.conf :
Code : Autre1
| AllowOverride FileInfo AuthConfig Limit |
AllowOverride None interdit l'usage des fichiers .htaccess.
AllowOverride All, au contraire, ne leur donne pas de restriction.
Pour plus d'informations sur la commande
AllowOverride, jetez un coup d'oeil à la
documentation d'Apache 2.2 !
J'espère que ce tuto vous a été profitable !
Vous pouvez me contacter par
MP si vous avez un problème.
Je remercie vincent1870 pour sa correction de qualité malgré le fait qu'il était occupé
.