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

Aller à la navigation Aller à la recherche
aucun résumé des modifications
(Page créée avec « Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian. ... »)
 
Aucun résumé des modifications
 
(21 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Ce howto a été écrit au départ pour debian etch puis a été adapté pour debian lenny. Il reste cependant valable la plupart du temps pour ces deux versions de debian.
[[category:serveur]]


=Généralités sur linux=
=Fichiers=
 
==Fichiers==


Le système de fichier ext3 est principalement destiné aux systèmes basés sur GNU/Linux. Il permet des fichiers ayant un nom jusqu'à 256 caractères.
Le système de fichier ext3 est principalement destiné aux systèmes basés sur GNU/Linux. Il permet des fichiers ayant un nom jusqu'à 256 caractères.
Ligne 13 : Ligne 11 :
Sous linux, l'arborescence part d'une origine commune qu'on appel "root" (racine en français) ou "/". L'organisation standard des répertoires est décrite dans le [http://www.pathname.com/fhs/ Filesystem Hierarchy Standard]. Le respect de cette hiérarchie assure compatibilité et portabilité des systèmes linux.
Sous linux, l'arborescence part d'une origine commune qu'on appel "root" (racine en français) ou "/". L'organisation standard des répertoires est décrite dans le [http://www.pathname.com/fhs/ Filesystem Hierarchy Standard]. Le respect de cette hiérarchie assure compatibilité et portabilité des systèmes linux.


==Droits, permissions des fichiers et dossiers==
=Droits, permissions des fichiers et dossiers=


===A propos des permissions et des droits===
===A propos des permissions et des droits===
Ligne 50 : Ligne 48 :
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 71 : Ligne 69 :
* sticky bit : il faut utiliser la commande <code>chmod u+t</code> (ou chmod 1xxx). Pour les dossiers : lorsque ce droit est positionné, il empêche la suppression des fichiers du dossier à tout utilisateur n'étant pas le propriétaire du fichier. Cependant, un utilisateur ayant le droit d'écrire dans le fichier pourra toujours le modifier (et donc, le vider complètement s'il le veut !). Pour les fichiers : le positionnement de ce droit indique que le fichier devra rester en mémoire même après son exécution. Le but était d'éviter de charger/décharger trop souvent les fichiers souvent utilisés et d'améliorer ainsi les performances.
* sticky bit : il faut utiliser la commande <code>chmod u+t</code> (ou chmod 1xxx). Pour les dossiers : lorsque ce droit est positionné, il empêche la suppression des fichiers du dossier à tout utilisateur n'étant pas le propriétaire du fichier. Cependant, un utilisateur ayant le droit d'écrire dans le fichier pourra toujours le modifier (et donc, le vider complètement s'il le veut !). Pour les fichiers : le positionnement de ce droit indique que le fichier devra rester en mémoire même après son exécution. Le but était d'éviter de charger/décharger trop souvent les fichiers souvent utilisés et d'améliorer ainsi les performances.


===L'umask===
==L'umask==
La commande <code>umask</code> permet de définir pour chaque utilisateur avec quelles permissions seront créées les fichiers et dossiers.
La commande <code>umask</code> permet de définir pour chaque utilisateur avec quelles permissions seront créées les fichiers et dossiers.
Pour calculer l'umask à appliquer, il faut soustraire les permissions voulues aux permissions totales (777).<br />
Pour calculer l'umask à appliquer, il faut soustraire les permissions voulues aux permissions totales (777).<br />
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 91 : Ligne 89 :
N'oubliez pas de définir l'umask de votre utilisateur root dans <code>/root/.bash_profile</code>
N'oubliez pas de définir l'umask de votre utilisateur root dans <code>/root/.bash_profile</code>


===Les droits de /home===
==uid et le gid d'un utilisateur et modification du groupe==
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>
$ chmod o-r /home
</nowiki></pre>
Il en ira de même si vous ne voulez pas qu'un utilisateur puisse voir l'arborescence située dans /
 
===uid et le gid d'un utilisateur et modification du groupe===
L'uid (user ID) d'un utilisateur est son identifiant numérique. Il est unique à chaque utilisateur. Il est généralement supérieur à 1000.<br />
L'uid (user ID) d'un utilisateur est son identifiant numérique. Il est unique à chaque utilisateur. Il est généralement supérieur à 1000.<br />
Le gid (group ID) d'un groupe est son identifiant numérique. Il est unique à chaque groupe et est généralement supérieur à 1000.<br />
Le gid (group ID) d'un groupe est son identifiant numérique. Il est unique à chaque groupe et est généralement supérieur à 1000.<br />
Ligne 110 : Ligne 101 :
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 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>
 
==Inclure un utilisateur dans un groupe==
Appartenir à un groupe permet souvent d'obtenir des droits supplémentaires. Exemple: appartenir au groupe <code>audio</code> donne accès aux périphériques audios.
Pour modifier les différents utilisateurs apprtenant à un groupe, il est possible de directement modifier le fichier <code>/etc/group</code> en énumérant les utilisateurs à droite du groupe voulu.
Une autre méthode consiste à utiliser la commande <code>gpasswd</code>. Par exemple pour rajouter un <code>utilisateur</code> à un <code>groupe</code>
<pre>
gpasswd -a utilisateur groupe
</pre>
Pour retirer un <code>utilisateur</code> d'un <code>groupe</code> :
<pre>
gpasswd -d utilisateur groupe
</pre>
<code>man gpasswd</code> pour plus d'informations.
 
=Les liens=
Sous linux chaque fichier est repéré physiquement sur le disque par un inode (c'est en quelque sorte le vrai nom des données sur le disque). Le nom de fichier (filename) est ce qu'on appel une étiquette et pointe sur l'inode.
 
==Hard link==
On créé un hardlink avec la commande <code>ln</code>. Ils permettent de créer une nouvelle étiquette pointant vers un inode. Une fois un hardlink créé, on peut accéder au fichier aussi bien avec le nom d'origine qu'avec le nom que l'on vient de créer. Si on efface le nom d'origine, le fichier reste accessible par le hardlink.
Notez que les hardlinks doivent être situé sur le même disque physique.
 
Pour créer un hardlink :
<pre><nowiki>
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
==symbolic link==
Un lien symbolic est une nouvelle étiquette pointant cette fois vers un nom de fichier. Si on efface le fichier d'origine, le lien ne signifie plus rien.
Pour créer un lien symbolique :
<pre><nowiki>
ln -s source destination
</nowiki></pre>
source est le nom du fichier pour lequel vous voulez créer un hardlink, et destination est le nom du lien
=Ajouter et supprimer des utilisateurs=
Pour ajouter un groupe il faut utiliser la commande groupadd :
<pre><nowiki>
groupadd -g GID GROUPE
</nowiki></pre>
GID est le numéro du groupe. GROUPE est le nom du groupe.
Pour ajouter un utilisateur il faut utiliser la commande useradd :
<pre><nowiki>
useradd -g GID -u UID LOGIN -d home_dir -m
</nowiki></pre>
GID est le numéro du groupe principal de l'utilisateur.<br />
UID est le numéro de l'utilisateur. LOGIN est le login de l'utilisateur.<br />
home_dir est le répertoire de l'utilisateur. Généralement /home/LOGIN.<br />
L'option -m précise qu'il faut créer le répertoire personnel de l'utilisateur.
=Le patch kernel grsecurity et la restriction des droits de /proc=
Le patch grsecurity pour le noyau linux permet d'augmenter la sécurité de votre machine. Cependant, la restriction des droits qu'il peut imposer sur certains répertoires peut être quelque-peut gênante, notamment pour les services utilisant l'ipv6. Si le kernel est bien configuré il a attribué les répertoires dont il a durcit les privilèges à un groupe (défini par la directive de configuration CONFIG_GRKERNSEC_PROC_GID). Si certains services posent des problèmes au lancement (c'est le cas par exemple pour postfix ou bind9 lorsqu'on les configure pour gérer l'ipv6) ajoutez les simplement au groupe des sous-répertoires de /proc/.
Si vous utilisez snmpd, il faut modifier la ligne de lancement dans <code>/etc/default/snmpd</code> en ajoutant l'option <code>-g GID</code> où GID est le groupe défini par CONFIG_GRKERNSEC_PROC_GID.
=Le programme tar=
4 203

modifications

Menu de navigation