« Généralités sur linux » : différence entre les versions

Aller à la navigation Aller à la recherche
aucun résumé des modifications
Aucun résumé des modifications
Ligne 50 : Ligne 50 :
Pour changer les permissions d'un fichier/dossier:
Pour changer les permissions d'un fichier/dossier:
<pre><nowiki>
<pre><nowiki>
$ chmod u+rwx plop : ajoute les permissions rwx à user pour le fichier/dossier plop <br />
chmod u+rwx plop : ajoute les permissions rwx à user pour le fichier/dossier plop <br />
$ chmod g+rwx plop : ajoute les permissions rwx au group pour le fichier/dossier plop <br />
chmod g+rwx plop : ajoute les permissions rwx au group pour le fichier/dossier plop <br />
$ chmod o+rwx plop : ajoute les permissions rwx a other pour le fichier/dossier plop  
chmod o+rwx plop : ajoute les permissions rwx a other pour le fichier/dossier plop  
</nowiki></pre>
</nowiki></pre>


Vous pouvez changer les permissions d'un dossier et de tout ses sous-répertoires en ajoutant l'option -R :
Vous pouvez changer les permissions d'un dossier et de tout ses sous-répertoires en ajoutant l'option -R :
<pre><nowiki>
<pre><nowiki>
$ chmod -R o+r dir/
chmod -R o+r dir/
</nowiki></pre>
</nowiki></pre>


Ligne 76 : Ligne 76 :
Pour que les fichiers/dossiers soient créées avec les droits 755, il faudra mettre l'umask à 22 :
Pour que les fichiers/dossiers soient créées avec les droits 755, il faudra mettre l'umask à 22 :
<pre><nowiki>
<pre><nowiki>
$ umask 0022
umask 0022
</nowiki></pre>
</nowiki></pre>
Selon moi, un umask a 0027 est l'idéal. Cela permet de ne jamais créer de fichiers/dossiers accessibles par other.
Selon moi, un umask a 0027 est l'idéal. Cela permet de ne jamais créer de fichiers/dossiers accessibles par other :
<pre><nowiki>
<pre><nowiki>
$ umask 0027
umask 0027
</nowiki></pre>
</nowiki></pre>


Ligne 94 : Ligne 94 :
Vous aurez peut-être remarqué que, lorsqu'un utilisateur se logue, il peut lister les répertoires de /home. Même s'il ne peut pas voir les fichiers des autres utilisateurs, il se peut que vous trouviez gênant qu'un utilisateur connaisse les logins des autres utilisateurs. Vous pouvez régler ce problème en enlevant le droit en lecture pour other de /home comme suit :
Vous aurez peut-être remarqué que, lorsqu'un utilisateur se logue, il peut lister les répertoires de /home. Même s'il ne peut pas voir les fichiers des autres utilisateurs, il se peut que vous trouviez gênant qu'un utilisateur connaisse les logins des autres utilisateurs. Vous pouvez régler ce problème en enlevant le droit en lecture pour other de /home comme suit :
<pre><nowiki>
<pre><nowiki>
$ chmod o-r /home
chmod o-r /home
</nowiki></pre>
</nowiki></pre>
Il en ira de même si vous ne voulez pas qu'un utilisateur puisse voir l'arborescence située dans /
Il en ira de même si vous ne voulez pas qu'un utilisateur puisse voir l'arborescence située dans /
Ligne 110 : Ligne 110 :
Pour ajouter l'utilisateur pfoo dans le groupe audio, tapez :
Pour ajouter l'utilisateur pfoo dans le groupe audio, tapez :
<pre><nowiki>
<pre><nowiki>
$ usermod -G -a audio pfoo
usermod -G -a audio pfoo
</nowiki></pre>
</nowiki></pre>


Pour changer le groupe principal de l'utilisateur pfoo, tapez :
Pour changer le groupe principal de l'utilisateur pfoo, tapez :
<pre><nowiki>
<pre><nowiki>
$ usermod -g legroupe pfoo
usermod -g legroupe pfoo
</nowiki></pre>
</nowiki></pre>


Ligne 127 : Ligne 127 :
Pour créer un hardlink :
Pour créer un hardlink :
<pre><nowiki>
<pre><nowiki>
$ ln source nouveau_nom
ln source nouveau_nom
</nowiki></pre>
</nowiki></pre>
source est le nom du fichier pour lequel vous voulez créer un hardlink, et nouveau_nom est le nom du lien
source est le nom du fichier pour lequel vous voulez créer un hardlink, et nouveau_nom est le nom du lien
Ligne 137 : Ligne 137 :
Pour créer un lien symbolique :
Pour créer un lien symbolique :
<pre><nowiki>
<pre><nowiki>
$ ln -s source destination
ln -s source destination
</nowiki></pre>
</nowiki></pre>
source est le nom du fichier pour lequel vous voulez créer un hardlink, et destination est le nom du lien
source est le nom du fichier pour lequel vous voulez créer un hardlink, et destination est le nom du lien
Ligne 145 : Ligne 145 :
Pour ajouter un groupe il faut utiliser la commande groupadd :
Pour ajouter un groupe il faut utiliser la commande groupadd :
<pre><nowiki>
<pre><nowiki>
$ groupadd -g GID GROUPE
groupadd -g GID GROUPE
</nowiki></pre>
</nowiki></pre>
GID est le numéro du groupe. GROUPE est le nom du groupe.
GID est le numéro du groupe. GROUPE est le nom du groupe.
Ligne 151 : Ligne 151 :
Pour ajouter un utilisateur il faut utiliser la commande useradd :
Pour ajouter un utilisateur il faut utiliser la commande useradd :
<pre><nowiki>
<pre><nowiki>
$ useradd -g GID -u UID LOGIN -d home_dir -m
useradd -g GID -u UID LOGIN -d home_dir -m
</nowiki></pre>
</nowiki></pre>
GID est le numéro du groupe principal de l'utilisateur.<br />
GID est le numéro du groupe principal de l'utilisateur.<br />
Ligne 173 : Ligne 173 :
Lorsque vous lancez votre serveur, certains services devront être lancé automatiquement. Ce lancement est effectué grâce à des fichiers situés dans /etc/rc?.d/ Le point d'interrogation (?) représente un chiffre contenu entre 0 et 6. Ce chiffre représente l'init. L'init par défaut qui est exécuté au boot est défini dans le fichier /etc/inittab
Lorsque vous lancez votre serveur, certains services devront être lancé automatiquement. Ce lancement est effectué grâce à des fichiers situés dans /etc/rc?.d/ Le point d'interrogation (?) représente un chiffre contenu entre 0 et 6. Ce chiffre représente l'init. L'init par défaut qui est exécuté au boot est défini dans le fichier /etc/inittab
Chez moi par exemple, j'ai la ligne suivante dans mon /etc/inittab :
Chez moi par exemple, j'ai la ligne suivante dans mon /etc/inittab :
<pre>id:2:initdefault:</pre>
Celà signifie que lorsque je démarre mon serveur, il passe directement en <code>init 2</code>. C'est donc les fichiers situés dans /etc/rc2.d/ qui seront utilisés pour lancer les services.


    id:2:initdefault:
Il est bon de noter que les fichiers situés dans <code>/etc/rc2.d/</code> sont en fait des liens virtuels pointant vers le lanceur situé dans <code>/etc/init.d/</code>
 
Celà signifie que lorsque je démarre mon serveur, il passe directement en init 2. C'est donc les fichiers situés dans /etc/rc2.d/ qui seront utilisés pour lancer les services.
 
Il est bon de noter que les fichiers situés dans /etc/rc2.d/ sont en fait des liens virtuels pointant vers le lanceur situé dans /etc/init.d/
Si on supprime l'un de ces lignes virtuels, le service en question ne sera plus lancé automatiquement.
Si on supprime l'un de ces lignes virtuels, le service en question ne sera plus lancé automatiquement.
Si on ajoute un lien, le service correspondant sera alors automatiquement lancé aut boot.
Si on ajoute un lien, le service correspondant sera alors automatiquement lancé au boot.


Vous avez peut-être remarqué que les liens ne sont pas nommé uniquement par le nom du service qu'ils lancent, mais qu'ils sont préfixés d'une lettre et de deux chiffres.
Vous avez peut-être remarqué que les liens ne sont pas nommé uniquement par le nom du service qu'ils lancent, mais qu'ils sont préfixés d'une lettre et de deux chiffres.
Ligne 191 : Ligne 189 :
A titre d'information, voici comment créer un lien virtuel pour ajouter un service au lancement automatique :
A titre d'information, voici comment créer un lien virtuel pour ajouter un service au lancement automatique :


    # ln -s /etc/init.d/exemple /etc/rc2.d/S20exemple
<pre>ln -s /etc/init.d/exemple /etc/rc2.d/S20exemple</pre>


Notez tout de même que beaucoup de serveurs (apache, proftpd, ...) proposent dans leur fichier /etc/default/ de définir s'ils doivent se lancer ou non au boot. Celà permet de ne pas toucher aux fichiers de /etc/rc?.d/
Notez tout de même que beaucoup de serveurs (apache, proftpd, ...) proposent dans leur fichier <code>/etc/default/</code> de définir s'ils doivent se lancer ou non au boot. Cela permet de ne pas toucher aux fichiers de /etc/rc?.d/


=Généralités sur ce howto=
=Généralités sur ce howto=


Je vais commencer par décrire l'arborescence que la suite du howto utilise.
Je vais commencer par décrire l'arborescence que la suite du howto utilise.
Le dossier /srv/ va contenir tous les dossiers et fichiers en rapport directement avec le serveur. Sur mon installation, j'ai créé une partition à part pour /srv/ ce qui permet de ne pas perdre les données lors d'une réinstallation.
Le dossier <code>/srv/</code> va contenir tous les dossiers et fichiers en rapport directement avec le serveur. Sur mon installation, j'ai créé une partition à part pour <code>/srv/</code> ce qui permet de ne pas perdre les données lors d'une réinstallation.
/srv/bind/ contient les différentes zones dns que mon serveur bind9 gère.
<code>/srv/bind/</code> contient les différentes zones dns que mon serveur bind9 gère.
/srv/http/ contient les différents sites internet que mon serveur héberge du moment qu'ils ne sont pas rattaché à un utilisateur en particulier. Les sites internet rattachés à un utilisateur doivent être dans le dossier home de l'utilisateur en question.
<code>/srv/http/</code> contient les différents sites internet que mon serveur héberge du moment qu'ils ne sont pas rattaché à un utilisateur en particulier. Les sites internet rattachés à un utilisateur doivent être dans le dossier home de l'utilisateur en question.


Notez que pour la suite de ce howto, tous les changements de permissions effectués supposent que vous êtes en umask 0027.
Notez que pour la suite de ce howto, tous les changements de permissions effectués supposent que vous êtes en umask 0027.
Vous pouvez voir votre umask actuel avec la commande umask. Si votre umask n'est pas 0027, tapez :
Vous pouvez voir votre umask actuel avec la commande umask. Si votre umask n'est pas 0027, tapez :
<pre>$ umask 0027</pre>
<pre>umask 0027</pre>


Créez le répertoire /srv s'il n'existe pas :
Créez le répertoire /srv s'il n'existe pas :
<pre>mkdir /srv
<pre>
chmod o+rx /srv</pre>
mkdir /srv
chmod o+rx /srv
</pre>


=Généralités sur l'installation d'un serveur dédié sous debian=
=Généralités sur l'installation d'un serveur dédié sous debian=
Ligne 217 : Ligne 217 :
Pour modifier la locale sous debian, tapez :
Pour modifier la locale sous debian, tapez :
<pre>
<pre>
$ dpkg-reconfigure locales
dpkg-reconfigure locales
</pre>
</pre>
Au premier menu, cochez les locales suivantes avec la touche espace :
Au premier menu, cochez les locales suivantes avec la touche espace :
<pre>
<pre>
    fr_FR ISO-8859-1
fr_FR ISO-8859-1
    fr_FR.UTF-8 UTF-8
fr_FR.UTF-8 UTF-8
    fr_FR.UTF-8@euro UTF-8
fr_FR.UTF-8@euro UTF-8
    fr_FR@euro ISO-8859-15
fr_FR@euro ISO-8859-15
</pre>
</pre>
Au menu suivant, définissez <code>fr_FR.UTF-8</code> comme locale active par défaut.
Au menu suivant, définissez <code>fr_FR.UTF-8</code> comme locale active par défaut.
Ligne 238 : Ligne 238 :
Le premier fichier à modifier est <code>/etc/hostname</code>. Ce fichier défini notamment le nom affiché dans le shell. Tapez :
Le premier fichier à modifier est <code>/etc/hostname</code>. Ce fichier défini notamment le nom affiché dans le shell. Tapez :
<pre>
<pre>
$ echo core.csnu.org > /etc/hostname
echo core.csnu.org > /etc/hostname
</pre>
</pre>


Il faut aussi modifier le fichier <code>/etc/hosts</code> et modifier la correspondance entre l'ip de la machine et l'hostname. Dans mon cas :
Il faut aussi modifier le fichier <code>/etc/hosts</code> et modifier la correspondance entre l'ip de la machine et l'hostname. Dans mon cas :
<pre>
<pre>
    213.186.47.110  core.csnu.org
213.186.47.110  core.csnu.org
</pre>
</pre>


Ligne 251 : Ligne 251 :
Pour ajouter l'adresse ipv6 2001:41d0:1:127d::1 à l'interface eth0 de votre serveur, tapez:
Pour ajouter l'adresse ipv6 2001:41d0:1:127d::1 à l'interface eth0 de votre serveur, tapez:
<pre>
<pre>
    ifconfig eth0 inet6 add 2001:41d0:1:127d::1/64
ifconfig eth0 inet6 add 2001:41d0:1:127d::1/64
</pre>
</pre>
Pour supprimer cette adresse ipv6 :
Pour supprimer cette adresse ipv6 :
<pre>
<pre>
    ifconfig eth0 inet6 del  2001:41d0:1:127d::1/64
ifconfig eth0 inet6 del  2001:41d0:1:127d::1/64
</pre>
</pre>
Pour que l'adresse ipv6 soit configurée automatiquement au boot il faut ajouter les lignes suivantes dans <code>/etc/network/interfaces</code> :
Pour que l'adresse ipv6 soit configurée automatiquement au boot il faut ajouter les lignes suivantes dans <code>/etc/network/interfaces</code> :
<pre>
<pre><nowiki>
    iface eth0 inet6 static
iface eth0 inet6 static
            address 2001:41d0:1:127d::1
      address 2001:41d0:1:127d::1
            netmask 64
      netmask 64
            #mtu 1280
      #mtu 1280
            up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
      up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
</pre>
</nowiki></pre>


Enfin, il faut modifier <code>/etc/hosts</code> :
Enfin, il faut modifier <code>/etc/hosts</code> :
<pre>
<pre>
    ::1 localhost.localdomain localhost
::1 localhost.localdomain localhost
    2001:41d0:1:127d::1 core.csnu.org
2001:41d0:1:127d::1 core.csnu.org
</pre>
</pre>


Ligne 278 : Ligne 278 :
Si vous voulez bénéficier d'un motd graphique, installez le paquet <code>linuxlogo</code> :
Si vous voulez bénéficier d'un motd graphique, installez le paquet <code>linuxlogo</code> :
<pre>
<pre>
    # aptitude install linuxlogo
aptitude install linuxlogo
</pre>
</pre>


Vous pouvez créer un logo en dirigeant la sorti de la commande <code>linux_logo</code> vers <code>/etc/motd</code> :
Vous pouvez créer un logo en dirigeant la sorti de la commande <code>linux_logo</code> vers <code>/etc/motd</code> :
<pre>
<pre>
    # linux_logo > /etc/motd
linux_logo > /etc/motd
</pre>
</pre>
Si vous voulez automatiser la création d'un motd dynamique qui se modifiera par exemple à chaque changement de kernel il faut créer un script sh qui sera lancé à chaque démarrage. Personnellement, je me sers du fichier <code>/etc/rc.local</code>.
Si vous voulez automatiser la création d'un motd dynamique qui se modifiera par exemple à chaque changement de kernel il faut créer un script sh qui sera lancé à chaque démarrage. Personnellement, je me sers du fichier <code>/etc/rc.local</code>.
Voici mon fichier <code>/etc/rc.local</code> :
Voici mon fichier <code>/etc/rc.local</code> :
<pre>
<pre>
    #!/bin/sh -e
#!/bin/sh -e
    linux_logo > /etc/motd
linux_logo > /etc/motd
    echo >> /etc/motd
echo >> /etc/motd
    echo "Debian GNU/Linux 4.0" >> /etc/motd
echo "Debian GNU/Linux 4.0" >> /etc/motd
    echo >> /etc/motd
echo >> /etc/motd
    uname -a >> /etc/motd
uname -a >> /etc/motd
    echo >> /etc/motd
echo >> /etc/motd
    echo "server    : `hostname | cut -f 1 -d "."`" >> /etc/motd
echo "server    : `hostname | cut -f 1 -d "."`" >> /etc/motd
    echo "ip        : `cat /etc/network/interfaces | grep "address" | head -n 1 | cut -f 2 -d " "`"  >> /etc/motd
echo "ip        : `cat /etc/network/interfaces | grep "address" | head -n 1 | cut -f 2 -d " "`"  >> /etc/motd
    echo "ip6 : `tac /etc/network/interfaces | grep "address" |  head -n 1 | cut -f 2 -d " "`" >> /etc/motd
echo "ip6 : `tac /etc/network/interfaces | grep "address" |  head -n 1 | cut -f 2 -d " "`" >> /etc/motd
    echo "hostname  : `hostname`" >> /etc/motd
echo "hostname  : `hostname`" >> /etc/motd
    echo >> /etc/motd
echo >> /etc/motd
    /bin/cp /etc/motd /etc/issue
/bin/cp /etc/motd /etc/issue
    exit 0
exit 0
</pre>
</pre>


Ligne 309 : Ligne 309 :
Pour commencez, installez <code>mailx</code>:
Pour commencez, installez <code>mailx</code>:
<pre>
<pre>
$ aptitude install mailx
aptitude install mailx
</pre>
</pre>
<code>mailx</code> permet d'envoyer et de recevoir des mails (c'est un MUA, ou Mail User Agent). Les dépendances de mailx sous debian vont installer un serveur smtp. Sous debian, c'est exim4 qui va est installé par défaut.
<code>mailx</code> permet d'envoyer et de recevoir des mails (c'est un MUA, ou Mail User Agent). Les dépendances de mailx sous debian vont installer un serveur smtp. Sous debian, c'est exim4 qui va est installé par défaut.
Ligne 316 : Ligne 316 :
Pour une raison obscure, lors de l'installation, je ne pouvais pas modifier le nom du serveur (mailname). Si vous êtes dans le même cas de figure, il suffit de modifier le fichier <code>/etc/mailname</code> et d'y entrer votre domaine. Une fois cela fait, il ne reste plus qu'à relancer la configuration d'exim:
Pour une raison obscure, lors de l'installation, je ne pouvais pas modifier le nom du serveur (mailname). Si vous êtes dans le même cas de figure, il suffit de modifier le fichier <code>/etc/mailname</code> et d'y entrer votre domaine. Une fois cela fait, il ne reste plus qu'à relancer la configuration d'exim:
<pre>
<pre>
    dpkg-reconfigure exim4-config
dpkg-reconfigure exim4-config
</pre>
</pre>
4 203

modifications

Menu de navigation