Ce topic est réservé aux débutants sous linux voulant administrer un serveur Debian. Pour ce faire, il faut connaitre les bases de ce système d'exploitation que l'on utilisera en ligne de commande. En effet, pour l'administration d'un serveur, nous utiliserons un terminal. Par conséquent, il n'y aura pas d'interface graphique. Sur Mac OS X ainsi que sur linux le terminal est directement intégré à l'OS.. Il vous suffira de le trouver dans votre dossier application. Sur windows, rien de difficile non plus, rendez-vous sur cette page, téléchargez et installez le logiciel.

Qu'est ce que Debian? Pourquoi l'utilise-t-on?

Debian est un système d'exploitation comme windows et Mac OS. Un système d'exploitation correspond à l'ensemble des programmes et utilitaires de base qui permettent de faire fonctionner votre ordinateur.Le système d'exploitation est lui même composé d'un noyau. Celui-ci gère les ressources nécessaire au bon fonctionnement de votre ordinateur et vous permet de lancer vos logiciels. Debian utilise un noyau Linux.

La majorité des serveurs web sont sous Linux ou windows. Nous utilisons Debian car il est totalement libre et ne contient aucun logiciel propriétaire par défaut. Les versions stables de Debian sortent quand elles sont prêtes, ce qui vous assure la stabilité de votre serveur. Enfin, Debian est moins gourmand en ressources par rapport à Ubuntu par exemple. Il existe bien évidemment d'autres systèmes d'exploitations qui sont extrêmement performant comme Fedora ou CentOS mais les tutos que vous trouverez ici ne sont pas adaptés.

Qu'est ce que Linux?

Linux est un logiciel initié par Linus Torvalds. L'open source et donc le développement du logiciel libre ont été mis au coeur du projet. De ce fait, le logiciel peut-être développé et distribué par n'importe quel programmeur. Peut-être vous qui sait? Mais Linux s'est généralisé, désormais, on appelle linux tout système d'exploitation libre fonctionnant avec le noyau linux. Ce qui est un erreur puisque dans notre cas, le système d'exploitation correspond à Debian avec un noyau Linux.

Sous windows l'extension de fichier pour un logiciel correspond au .exe, mais sous Debian on utilise quoi?

Chaque système d'exploitation utilise des extensions de fichiers différentes. Sous Debian les logiciels sont au format .deb. Communément, on utilisera le nom de "paquet" pour évoquer un logiciel.

Comment partitionner correctement mon serveur?

Lorsque vous allez installer Debian sur votre serveur, votre hébergeur va mettre à votre disposition un utilitaire de partitionnement. il est préférable d'avoir un /home à part. Il existe plusieurs types de partitions (Primaire, étendue et logique).Voici comment partitionner correctement votre serveur.

Type de partition Type Point de montage Taille

Primaire Ext4 /boot 200 MO
Primaire SWAP 1024 MO
Primaire EXT4 / 15360 MO
Primaire EXT4 /home Tout le reste

comment se connecter au serveur?

Rien de plus simple, ouvrez le terminal et tapez ceci:

ssh root@Ip du serveur ou nom de domaine

Si vous avez changé le port du serveur

ssh -p <port> root@Ip du serveur ou nom de domaine

Si vous voulez vous connecter avec votre utilisateur remplacez root par votre utilisateur.

Si j'ai une erreur de SSH comment là résoudre?

Si vous avez une erreur de ce type:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! 
Someone could be eavesdropping on you right now (man-in-the-middle attack)! 
It is also possible that the RSA host key has just been changed. 
..... 
..... 
Host key verification failed. 

tapez dans votre terminal:

ssh-keygen -R <IP du serveur>

Si vous avez un conflit de clés SSH Tapez ceci:

Sous Linux:

ssh-keygen -f "/home/<user>/.ssh/known_hosts" -R <IP_Serveur>

Sur Mac:

ssh-keygen -f "/Users/<user>/.ssh/known_hosts" -R <ip_serveur>
  • Sous Windows avec Putty:

On ouvre avec "Exécuter" :

regedit

Et on va chercher l'ip du serveur dans:

\HKEY_CURRENT_USER\Software\SimonTatham\Putty\sshHostKeys

Clic droit dessus et supprimer.

Merci Ex_rat pour ces commandes.

Si avec ceci, vous n'y arrivez toujours pas alors il faut suivre le tuto de Ex_rat.

Qu'est ce que le root?

Le root correspond au compte administrateur. L'utilisateur root accède à la totalité du système d'exploitation, par conséquent, il dispose de toutes les permissions sur le sysème. Il pourra créer/modifier un fichier, le renommer le supprimer etc.. Tout ce qu'un utilisateur lambda ne pourra pas faire.
Pour accéder au root il faut taper la commande suivante dans un terminal.

su root

ou lancer sudo devant une commande

Exemple:

sudo apt-get upgrade

pour mettre à jour le serveur.

Quelles sont les commandes nécessaires pour administrer mon serveur?

Se connecter en root:

su root

Mettre à jour les dépots:

apt-get update

Mettre à jour le serveur:

apt-get upgrade

Installer un paquet:

apt-get install <nom du paquet>

Supprimer un paquet:

apt-get remove <nom du paquet>

Suppression du paquet et de ses paramètres:

apt-get purge <nom du paquet>

ou

sudo apt-get autoremove --purge <nom du paquet>

Suppression de paquets d'installation:

apt-get clean

ou

apt-get autoclean

Les commandes de l'éditeur de texte intégré au terminal:

Pour modifier un fichier il faut utiliser la commande nano.

nano /chemin/du/fichier

dans l'éditeur de fichier:

  • pour se déplacer dans l'éditeur de texte, utilisez les touches directionnelles de votre clavier

  • ctrl+w permet de faire une recherche

  • ctrl+c permet d'annuler

  • ctrl+o permet d'enregistrer le fichier

  • ctrl+x permet de fermer l'éditeur de texte

Pour installer un paquet, parfois il faut ajouter des dépots. Pour ce faire:

nano /etc/apt/sources.list

et ajoutez vos lignes a la fin du fichier. Il faut toujours faire une mise a jour des dépots via la commande ci-dessus après les avoir modifié.

Création de dossier:

mkdir /chemin/du/dossier/<nom du dossier>

Création de fichier:

touch /chemin/du/dossier/<nom du fichier.extension

pour créer une page index.html dans /var/www/site/ cela donne

touch /var/www/site/index.html

Suppression de dossier:

rmdir /chemin/du/dossier/

ou

rm -r /chemin/du/dossier

Suppression de fichier:

rm /chemin/du/fichier

Les commandes de suppression en général:

rm -R /chemin/du/fichier (suppression récursive)
rm -i /chemin/du/fichier (suppression avec confirmation)
rm -f /chemin/du/fichier (suppression forcé)
rm -rf /chemin/du/fichier suppression du dossier et tout son contenu

Se placer dans un dossier:

cd /chemin/du/dossier

Télécharger un fichier compressé après s'être placé dans le bon répertoire:

wget url du fichier

Décompression fichier.tar.gz:

tar xzvf chemin/du/fichier/<fichier.tar.gz>

Compression d'un zip:

zip /chemin/du/fichier/

Décompression d'un zip:

unzip /chemin/du/dossier

renommer un fichier:

mv /chemin/du/fichier/<fichier>

Pour déplacer un fichier/dossier:

mv /chemin/du/fichier /chemin/du/nouveau/fichier

Copie d'un fichier:

cp /chemin/du/fichier /chemin/de/copie

afficher le contenu d'un fichier:

cat /chemin/du/fichier/

assembler plusieurs fichier:

cat fichier1 fichier2 > fichier final

afficher le contenu d'un dossier:

dir /chemin/du/fichier

Monter un système de fichiers:

mount /chemin/du/fichier/

Démonter un système de fichiers:

umount /chemin/du/dossier

Modifier le mot de passe d'un utilisateur:

passwd <utlisateur>

suppression d'un utilisateur et de son /home:

deluser –remove-home <utilisateur>

Forcer l'arrêt d'un processus:

killall <processus>

Afficher la quantité d'espace disque utilisé par les systèmes de fichiers:

df-h

Modifier les permissions de fichier:

chmod <numéro de permission> /chemin/du/fichier/

Modifier les permissions de dossier:
On ajoute un -R

chmod -R <numéro de permission> /chemin/du/dossier/

Veuillez noter que vous pouvez assembler des commandes avec &&. Par exemple on veut mettre à jour les dépots et mettre à jour le système:

apt-get update && apt-get upgrade

Pour plus d'options ou pour d'autre commande veuillez vous rendre ici ou ici.

Qu'est ce que le fichier temporaire?

Le fichier temporaire est un fichier qui supprimera automatiquement son contenu au redémarrage du serveur. Voilà pourquoi nous nous plaçons dans ce repertoire (/tmp) lors de nos tutos. Après un reboot, il n'y aura plus de traces de votre installation ce qui est beaucoup plus propre.

Qu'est ce que le FTP et le SFTP?

Le FTP (File Transfer Protocol) est un protocole de communication qui va vous permettre de rapatrier vos fichiers à la maison, ou supprimer/renommer directement un fichier sur votre serveur. le port par défaut correspond au port 21. On l'utilise via un logiciel comme FileZilla qui est libre et gratuit.

Le SFTP (SSH File Transfer Protocol) permet de faire la même chose, on l'utilise également via le Logiciel FileZilla. Cependant ce protocole de communication est basé sur le SSH. Il devient alors entièrement sécurisé. Le port par défaut correspond au port 22.

Comment connaitre l'ip de son serveur?

ifconfig eth0 | grep inet | awk '{ print $2 }'

Qu'est ce que les permissions de fichiers?

Debian ainsi que les OS Linux permettent de définir la gestion de droits d'accès aux divers fichiers de votre système d'exploitation.
De ce fait, il existe différents droits celui de lecture (r), d'écriture (w) et d'exécution (x).
On peut attribuer ces droits au propriétaire, à un groupe et aux autres utilisateurs [user (o), group (g) et other (o)].

Ces droits sont représentés de façon binaire. On peut donc en faire un tableau:

Numéro de permission Binaire Lecture Fonction

0 000 --- Pas d'accès
1 001 --x Executer
2 010 -w- Écrire
3 011 -wx Écrire et executer
4 100 r-- Lire
5 101 r-x Lire et executer
6 110 rw- Lire et écrire
7 111 rwx Lire, écrire et executer

Maintenant, il faut attribuer ces droits au propriétaire, groupe et aux autres utilisateurs:

       Permissions                      valeur        Fonction

propriétaire,groupe,utilisateurs

rwx --- --- 700 Lecture,écriture,execution pour le propriétaire
rwx rwx rwx 777 Lecture,écriture et execution pour tout le monde
rw- rwx --- 670 Lecture,écriture propriétaire et lecture,écriture,execution groupe
rwx rwx --- 770 Lecture,écriture et exécution pour le propriétaire et le groupe
rw- rw- --- 660 Lire et écrire pour le propriétaire et le groupe
r-- r-- r-- 444 Lire pour groupe, propriétaire et autres utilisateurs

Il y a de nombreuses combinaisons possibles. A vous de jouer.

Pour attribuer un tous les droits à un fichier:

chmod <valeur> /chemin/du/fichier

Je veux une partition par utilisateur comment faire?

Commencez par installer Debian avec le partitionnement ci-dessus.
Puis une fois l'installation terminé faites comme suit:

Connectez vous sur votre serveur en root:

su root

Puis installez Parted:

apt-get install parted

Repérez votre partition /home.
Pour cet exemple, ma partition /home sera sur /dev/sda4. Nous allons créer deux utilisateurs sur /dev/sda5 et /dev/sda6/

umount /dev/sda4

Puis tapez:

cfdisk

Un utilitaire de partition apparait.

  • Positionnez vous sur /dev/sda4 et détruisez en positionnant votre curseur sur détruire

  • Puis créer un nouvelle partition pour votre utilisateur1 en positionnant votre curseur sur nouvelle.

  • Sélectionnez Logique et entrez le nombre de Mo que vous voulez pour celui-ci.

  • Rappel : 1 gigas = 1024 mo donc pour 500 gigas par exemple 1024500 = 15360. utilisez la virgule pour les nombres décimaux.

  • Ensuite sélectionnez début pour créer /dev/sda5 ou fin pour /dev/sda6.

  • Puis retournez sur l'espace disponible et recommencez l'opération pour l'utilisateur2. etc.

  • Une fois vos partitions créées. sélectionnez écrire puis tapez oui. Enfin, quittez cfdisk.

vous revenez sur le terminal et tapez:

partprobe

Puis dans mon cas:

mkfs.ext4 -m 0 /dev/sda5
mkfs.ext4 -m 0 /dev/sda6

Il va falloir modifier l'emplacement des partitions:

nano /etc/fstab

Vous devez avoir quelque chose comme ceci :

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=aae3c454-cb61-40f9-80b9-8af653246a5f /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=9ce45988-6c6f-4a6b-b359-1a93d987efcd /boot           ext4    defaults        0       2
# /home was on /dev/sda4 during installation
UUID=1ee02366-50d8-4078-bdb2-a2cabe77c430 /home           ext4    defaults        0       2
# swap was on /dev/sda3 during installation
UUID=23b524f1-b038-4558-a1a0-10422ed661f6 none            swap    sw              0       0

On va supprimer les lignes qui concerne le /home. Dans mon cas:

# /home was on /dev/sda4 during installation
UUID=1ee02366-50d8-4078-bdb2-a2cabe77c430 /home           ext4    defaults        0       2

Et ajouter les partitions précédemment créées:

# Partitions /home de <utilisateur1> 
/dev/sda5 /home/<utilisateur1>                                     ext4    defaults        0       2
#Partition /home de <utilisateur2>
/dev/sda6 /home/<utilisateur2>                                     ext4    defaults        0       2

Logiquement vous devez avoir quelques chose comme ça au final.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=aae3c454-cb61-40f9-80b9-8af653246a5f /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=9ce45988-6c6f-4a6b-b359-1a93d987efcd /boot         ext4    defaults        0       2
# swap was on /dev/sda3 during installation
UUID=23b524f1-b038-4558-a1a0-10422ed661f6 none         swap    sw              0       0
# Partitions /home de <utilisateur1> 
/dev/sda5 /home/<utilisateur1>                                     ext4    defaults        0       2
#Partition /home de <utilisateur2>
/dev/sda6 /home/<utilisateur2>                                     ext4    defaults        0       2

Nous allons maintenant créer le fichier /home pour chaque utilisateur:

mkdir /home/utilisateur1
mkdir /home/utilisateur2

Nous allons maintenant monter le répertoire /home de chaque utilisateur:

mount /home/utilisateur1
mount /home/utilisateur2

et enfin on va redémarrer le serveur:

reboot

Si tout se passe correctement, votre serveur redemmare, sinon vous êtes bon pour une réinstallation ou un mode rescue.
Le sujet est terminé, merci de m'avoir lu. Un merci fait toujours plaisir.

Enjoy =D

Merci, beaucoup pour ce topic ! Pile ce qu'il me fallait ! Hop dans les favoris !
Mais de rien, avec plaisir =D
un mois plus tard
Un excellant tuto pour débuter il n'y a pas a dire, tu as bien géré, il a dû prendre des heurs lui
Ya la base des bases .
Oui j'ai mis pas mal de temps à le faire =). Merci =)
Respect Meister
Nice , par contre je mettrais vim a la place de nano gnagnagna
Un ENORME merci Meister. Merci de penser aux débutants. J'ai appris plein de choses.
De rien, ca fait plaisir de recevoir des commentaires comme ça
Moi aussi je tiens à remercier Meister, pour son travail et ses futurs travaux (owncloud ^^), car d'après ce que j'ai pu comprendre, il n'aime pas rester sur un échec...
En tout cas merci d'aider les NOOB comme moi.
Mais de rien, c'est normal, on a tous commencé comme toi 😛 un jour tu aideras les autres
6 jours plus tard
connais tu par hasard la commande pour redémarrer la machine car dans les tutos parfois il demande de redémarrer
reboot en root
j'ai tapé "reboot en root" mais ça n'a pas fonctionné
Juste "reboot" et "poweroff" pour arrêter la machine.
2 mois plus tard
Merci pour cette mine d'or pour un débutant !!!