Howtos GNU/Linux .: kozaki :. Howtos GNU/Linux

Guide de Survie sous LinuxII - Premiers pas de l'Administrateur

Où suis-je ?

Plusieurs cas sont possibles selon votre distribution et les options d'installation que vous avez choisies.

Premier cas : démarrage en mode texte.

Normalement après une installation réussie, Linux tourne, mais sans utilisateur défini. Vous devez voir une invitation à taper votre identifiant (login).
L'utilisateur principal s'appelle root (racine) (ne pas confondre avec le répertoire racine). Donc, tapez root, puis validez. Ensuite, on vous demande un mot de passe (password ). Inventez-en un (si ce n'est déjà fait lors de l'installation), tapez-le une fois, puis confirmez.

à ce moment, vous êtes loggé en tant que root :
- Vous êtes sur une console, dans un shell, c'est à dire un interpréteur de commandes (la tendance des distributions modernes est de démarrer directement le mode graphique).
- Vous devez voir une invite se terminant par '#' (spécifique du super-utilisateur). Cette invite est souvent représentée par % ou $. cool8 Il est bien évident qu'il ne faut pas reproduire ce signe lorsque vous tapez une commande hi hi hi !.

Quelques exemples de commandes :
date
factor 12 factorise 12
cal, cal 1 2008 : voilà des calendriers !!
echo 2+3|bc doit vous renvoyer 5. Pas besoin de calculette. Marche aussi comme ceci : echo $((2+3)).

Deuxième cas : login graphique

Dans ce cas, vous avez un écran graphique qui vous demande qui vous êtes et votre mot de passe. Une fois validé, vous arrivez sous un Linux graphique. C'est plus long, mais c'est plus joli. Lorsque vous voudrez taper des commandes, vous pourrez
  - soit lancer un xterm, c'est à dire une boîte permettant aussi bien la saisie de commandes que l'affichage du résultat (les menus de base de votre environnement graphique doivent vous mettre quelque part à disposition un moyen d'en lancer un facilement),
  - soit basculer sur une console texte (en tapant ALT F<1-7>).

Dernier cas : votre système d'installation a prévu le système autologin (certaines distributions récentes).

Dans ce cas, vous n'avez absolument rien à faire, le système tape les mots de passe à votre place pour l'utilisateur par défaut. Vous arrivez directement en mode de travail. Il va sans dire que ce mode de démarrage ne doit être employé que si la machine n'est pas accessible à des personnes indésirables...

J'ai du courrier

Remarque: les logiciels d'emails (type Kmail ou Evolution) enregistrent vos mails dans votre répertoire personnel /home/vous. Si vous préférez le mode bash voici comment faire :
Généralement, vous trouverez le message "you have new mail" dès votre connexion.

  • Pour voir votre courrier, tapez tout simplement : mail.
  • Vous verrez une liste de messages. Pour en lire un, tapez son numéro, puis <Entrée>.
  • Pour le détruire : delete <le_numéro>.
  • Quitter : q.
  • Plus de détails : man mail.

Ces messages sont dans le fichier /var/spool/mail/news. infoPar la suite, vous pourrez faire pointer votre client mail graphique sur ce répertoire pour les lire plus confortablement.

Les messages de démarrage ont défilés trop vite ! Je voudrais les relire

Tapez: dmesg : ça défile encore trop vite ?
Pas de panique : dmesg | less, puis les flèches haut et bas. q pour quitter. Vous venez de faire une commande très puissante : un tube (ou pipe), ici la redirection du résultat de dmesg vers le programme d'affichage less.
Plus simple : essayez la combinaison <Maj> <Haut de Page>. Vous devriez vous retrouver dans le texte au dessus de la ligne de commande (la simple flèche haut vous aurait rappelé les dernières commandes).
infoVous pourrez lire plein d'informations sur la version du noyau, les disques, les ports série ou le driver de carte son...
D'autres infos hyper-intéressantes dans /var/log/messages. info Pour ne voir que la fin (ce qui vous intéresse) : tail -f /var/log/messages (<Ctrl-c> pour quitter). Cette commande est hyper-intéressante lorsque vous êtes confronté à un problème inexplicable, genre path erroné...
infoD'une manière générale, il y a beaucoup d'informations intéressantes dans /var/log.

attention Pendant le boot, vous verrez parfois le message indiquant que le disque a été mounté un nombre maximal de fois et que la vérification est forcée ("disk has reached maximal mount -check forced"). La machine s'arrête alors un certain temps. N'éteignez surtout pas ! Attendez simplement que la vérification du disque soit terminée.
Cette vérification se fait automatiquement tous les X démarrages. L'intervalle peut être changé avec tune2fs .

Je n'arrive plus à démarrer MS-Windows !

Linux étant bien élevé, il permet le démarrage des autres OS, mais comme sa bonne éducation a des limites, il se paramètre comme OS par défaut pendant l'installation. Voici comment changer cela.

Cas de Lilo

Si vous utilisez lilo, vous devez voir au démarrage s'inscrire sur l'écran "LILO boot:". à ce moment, choisissez dans le menu le bon système (ou appuyez vite sur [Tab] pour les anciennes versions de lilo ). S'il s'inscrit dos ou windows, ou quelque chose comme ça, c'est que lilo connaît votre partition DOS, et en tapant dos à l'invite, dos/windows démarrera.

Si l'installation automatique de lilo n'a installé que Linux, éditez le fichier /etc/lilo.conf. Vous devriez y trouver quelque chose comme ceci :

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=normal
default=linux  # à changer si vous voulez Windows par défaut
keytable=/boot/fr-latin1.klt  # Pour avoir le clavier FR déjà installé
prompt timeout=10  # temporisation avant le démarrage automatique
message=/boot/message  # message intéressant à afficher
other=/dev/hda1  # la partition win.
label=windows  # choisissez un nom pour booter sur Windows
table=/dev/hda
image=/boot/vmlinuz
label=linux # c'est le nom qui apparaît pour booter Linux
root=/dev/hda3 # la partition Linux
initrd=/boot/initrd.img
append="" # On ajoute ici les options

Rajoutez les lignes nécessaires, enregistrez, & tapez # lilo pour que les modifications soient prises en compte.

pour en savoir plus : man lilo.

astuce Pour redémarrer automatiquement sur Windows depuis Linux si vous utilisez lilo , tapez lilo -R windows;reboot (si "windows" est bien le nom que vous avez donné comme nom de démarrage de Windows ).

astuce Si votre système ne boote plus (ou si Windows a effacé Lilo en se réinstallant !), démarrez à partir d'une disquette ou d'un cdrom Linux, montez votre partition racine dans un répertoire quelconque du système provisoire, réparez votre /etc/lilo.conf si nécessaire, puis tapez lilo -r le_répertoire_quelconque.

Si vous voulez être moderne, lilo a un successeur en la personne de chos. Avantage, il est plus joli. Il se configure à la main (dans /etc/chos.conf) ou avec vchos . Attention à avoir une disquette de boot sous la main, parce que sinon, chez moiça fait un joli kernel panic sur une machine.

Un autre boot loader sympa : xosl ( http://www.xosl.org). S'installe sous DOS (une disquette freedos peut faire l'affaire).

Cas de Grub

GRUB est le boot loader 100% GNU . En mode texte (coloré) et même graphique, la sélection du système se fait avec les flèches du clavier puis ENTRÉE.

  • GRUB s'utilise plus simplemet que Lilo : pas besoin de lancer une commande après édition :)
  • Le premier disque, peu importe qu'il soit IDE, SATA ou SCSI, est hd0, & la première partition = hd0,0.
  • Installer Grub :
      Vous devez d'abord taper grub. Puis, à l'invite, tapez find /boot/grub/stage1.
    Cela vous donne un résultat du genre hd0,0. Notez-le bien, puis tapez root (hd0,0), puis setup (hd0) pour une installation sur le mbr du premier disque, ou setup (hdx,y), avec x comme numéro de disque et y comme numéro de partition. Quittez avec quit. La configuration se trouve dans /boot/grub/menu.lst. Si les réglages par défaut ne vous conviennent pas, éditez ce fichier.
    Il doit ressembler à quelque chose comme ça :
timeout 5 # le délai avant que ça ne démarre tout seul
color black/cyan yellow/cyan # les couleurs
i18n (hd0,4)/boot/grub/messages # le fichier où se trouvent
  # les messages dans votre langue.
keytable (hd0,4)/boot/fr-latin1.klt # la langue du clavier
default 0 # le système lancé par défaut à l'issue du timeout,
  # ici le premier de la liste
title linux_2218 # le libellé de menu à choisir
kernel (hd0,4)/boot/vmlinuz-2.2.18 root=/dev/hda5 3 vga=0x318
  # le "3" force le démarrage en init 3, et
  # le "0x318" concerne l'affichage, ici 1024x768 en 24 bits.
  # (On aurait pu mettre "ask", auquel cas vous auriez
  # tapé 0318 au démarrage, quand on vous le demande)

title windows # (le menu pour démarrer Windows)
root (hd0,0)
makeactive
chainloader +1

astuce Contrairement à LILO, vous n'avez pas besoin de refaire la procédure d'installation de Grub à chaque fois que vous modifiez un réglage dans menu.lst. Contrairement à LILO qui est obligé de connaître l'adresse physique sur le disque, GRUB est capable de monter le file system et il se contente de l'adresse logique (nom du fichier).

astuce Si vous voulez ajouter un paramètre pendant le boot, tapez sur la touche e.

astuce Sous Mandriva, la syntaxe des lignes (hd0,X)/boot/blabla est "(hd0,X)/blabla"

astuce Pour avoir une zoli image personnalisée au démarrage, suivez ce guide Grub.
En résumé Grub peut lire une image 640 x 480 pixels 14 couleurs au format XPM (ou .xpm.gz) très facile à créer sous Gimp. Placez cette image.xpm.gz dans /boot/grub puis éditez /boot/grub/menu.lst en ajoutant dans le haut : splashimage (hd0,X)/boot/grub/votre_image.xpm.gz (sans le "/boot" sous Mandriva).

Liens Grub avancé

Cas de loadlin

Comme loadlin est un utilitaire qui vous permet de lancer Linux à partir de DOS, le boot de Windows n'est pas changé.

En revanche, vous pouvez démarrer Linux avec Loadlin sans lancer totalement Windows (gain de temps). Pour ceci, il vous faut faire un menu de démarrage.

Contenu de config.sys (d'après Jean-Pierre Vidal) :

DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\WINDOWS\EMM386.EXE
[menu]
menuitem=WIN,Windows
menuitem=LINUX,Linux
menudefault=LINUX
[WIN]
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=033,850,C:\WINDOWS\COMMAND\country.sys
shell=C:\COMMAND.COM C:\ /E:4096 /p
lastdrive=z
[LINUX]
shell=c:\loadlin\loadlin.exe c:\loadlin\vmlinuz
	root=/dev/hda3 mem=128M
[common]

Linux ne trouve que 15 ou 64 Mo de mémoire vive :-((

...et j'en ai davantage !

Cela se détecte par la commande free.

Si votre mémoire reste à 64 Mo, vous devez lancer Linux à partir de Lilo en tapant linux mem=128M. Pour automatiser la chose, éditez le fichier /etc/lilo.conf et rajoutez cette ligne dans la section qui lance Linux :
append= "mem=128M", enregistrez et tapez # lilo.

Si vous utilisez Loadlin, voyez la rubrique consacrée à Loadlin.

attention ne mettez pas cette ligne n'importe où. Cherchez à comprendre la logique du fichier de configuration.
append veut dire "ajouter à la fin". Cette commande doit donc être dans le paragraphe qui va bien et après la commande qui lance Linux...

  • astuce pour savoir ce que le gestionnaire de boot a vraiment rajouté comme option, lisez donc le fichier /proc/cmdline.
  • Sur les PC avec un BIOS qui permet le trou de mémoire entre 15 et 16 Mo (utile pour... certaines vieilles cartes graphiques ISA ou VESA), si vous avez activé cette fonction, Linux ne trouvera que 15 Mo ouiiin !. Merci à Jean-Bernard Jacquet.
  • Si Windows peut s'accommoder d'un mélange de type de RAM (EDO, etc.), Linux peut ne pas l'accepter.
  • astuce Ne paniquez pas si free vous montre une toute petite quantité de mémoire libre. En fait, Linux garde un maximum d'infos dans des caches et ne libère cette mémoire que lorsqu'il y en a vraiment besoin (ligne buffers/cache). Plus de délails avec cat /proc/meminfo. La véritable quantité de mémoire vive utilisée / libre est indiquée par la ligne -/+ buffers/cache: (cf Détails des commandes)

Je veux faire une disquette de secours

  • Essayez mkbootdisk. Si ce programme est présent sur votre machine, vous êtes sauvé : Voici la commande :
    mkbootdisk --device /dev/fd0 2.2.18 si votre lecteur de disquettes est le premier et que vous avez une copie du noyau en /boot/vmlinuz-2.2.18)
    Au prochain boot, introduisez la disquette avant de démarrer (à condition que votre BIOS soit bien réglé pour le boot sur disquette), et à l'invite de LILO tapez rescue pour démarrer sur la disquette, ou linux pour démarrer sur le disque dur (tout ceci concerne RedHat ).
  • Pour faire une copie binaire exacte (génération de disquette d'installation) : dd if=fichier_sur le disque_dur of=/dev/fd0 (if=input file, of=output file).
  • Je crois que la disquette de boot ne fonctionne pas si vous avez un disque UDMA .6.
  • cay bienSur Mandrake/Mandriva, votre cdrom d'installation peut très bien servir de disquette de boot
  • Si votre noyau est trop gros pour tenir sur une disquette, il faut la formater en 1,7 Mo.
  • astuce Si vous connaissez GRUB voyiez aussi l'excellente disquette de démarrage multi-OS

Quelles commandes peuvent faire quelque chose ?

Les principales commandes sont dans /bin & /sbin (les commandes du chef), /usr/bin, /usr/sbin, /usr/X11R6/bin et /usr/local/bin (commandes de tout le monde).
Allez donc voir les noms des fichiers qui y sont présents (ls /bin). Si vous aimez l'aventure, tapez un nom qui sonne bien. Si ça ne donne rien, tentez man macommande (ou info macommande). ça peut vous donner plein de renseignements.

Mieux : tapez une lettre au hasard, puis sur la touche [Tab] (1 ou 2 fois selon version de BASH). Vous verrez apparaître toutes les commandes commençant par cette lettre. Encore mieux : tapez directement [Tab]. Vous verrez apparaître le nombre de commandes disponibles (souvent plus de 1 000). Acceptez de toutes les voir (y), et bon courage !
Ceci n'est pas valable dans tous les shells . Pour connaître votre shell . echo $SHELL.

Pour lancer une commande dont l'action doit être permanente (i.e. programme que vous allez garder ouvert un moment), mieux vaut la faire suivre par &. Cela permet de la lancer en tâche de fond et de ne pas mobiliser une console. exemple : updatedb &.
attention La fermeture de la console fermera la programme. L'espace avant le "&" est facultatif. Notez qu'Il est déconseillé d'utiliser le & si cette commande renvoie des messages à la console, car les messages vont s'afficher de toute façon dans la console, et cela risque de perturber votre travail ultérieur.

astuce Si vous voulez récupérer l'usage d'une console occupée par un programme, tapez <Ctrl-z>, puis bgn (background). Votre programme retournera à l'arrière-plan, d'où il n'aurait jamais dû partir. Pour le ramener en avant-plan : fg.

Les principales commandes (suivre le lien pour + de délail) sont au nombre de 1000 à 2000 sur un OS Linux. En voici quelques-une très utiles :

ls (liste des fichiers=dir sous DOS), cd (change directory),
cp (copie un fichier), mkdir (make directory), rm =remove, (rm -rf <répertoire> efface un répertoire plein), rmdir (enlève un répertoire vide),
mv =move, déplace ou renomme (mv ancienfichier nouveaufichier),
vi (édite ou crée un fichier texte),
find, whereis ou locate (recherche de fichier), grep (recherche de chaîne dans les fichiers),
chown (changement de propriétaire), chmod (changement des autorisations à un fichier),
tar pour (dés)archiver, gzip pour (dézipper, bzip2 quand c'est zippé en ~.bz2,
ln -s créer un lien symbolique (ln -s <fichiercible> <lien>),
cat, qui envoie quelque chose vers quelque part (écran ou fichier),
et bien sûr man (manuel) et info.

Pour man, tapez $ man <commande>.
Si vous ne connaissez pas le nom de la commande qui fait ce que vous voulez, tapez makewhatis (une fois pour toutes), puis man -k lemotclérecherché. (même principe que updatedb et locate).
Un petit problème : les pages de man sont regroupées en plusieurs répertoires numérotés, pouvant contenir des mans de nom identique, mais de contenu différent. Par exemple, si vous voulez le man mtools.5, la commande man mtools affichera le man mtools.1. Dans ce cas, faites man 5 mtools

Dans KDE, tapez dans la barre d'adresse de Konqueror #<commande> ou man:<commande>. La page man ou info s'affichera dans Konqueror avec des couleurs et liens hypertexte : On n'arrête pas le progrès ; )

La commande locate (recherche de fichiers) est un peu particulière : elle s'appuie sur une base de données remise à jour la nuit (!) grâce au système anacron . On peut mettre cette base de données à jour manuellement en tapant : updatedb (script baséesur find). Les recherches sont ensuite instantanées et plus faciles (pas besoin de caractères joker). Cette base de données est en fait le fichier /var/lib/slocate/slocate.db (normal qu'il soit dans /var vu qu'il s'agit d'un fichier variable). Si vous n'avez pas ces programmes, installez slocate.

à l'inverse, si vous voulez connaître l'emplacement exact d'une commande :
type <commande>.

Quelques astuces pour taper dans le shell :

  • En mode Emacs (vérifiez par set -o) :   [Tab] : complète la commande
      <CTRL-U> : efface tout ce qui est a gauche du curseur
      <CTRL-A> : début de ligne.
      <CTRL-E> : fin de ligne (merci à T. Stoehr)
      <CTRL-W> : efface le mot à gauche du curseur
      <Esc B> ou <Alt-B> : recule d'un mot
  • En mode vi (set -o vi) : utilisez les commandes de vi pour activer un mode commande ou un mode insertion.
  • D'autres astuces: man bash

La plupart de ces raccourcis claviers fonctionnent sur les programmes tournant sous Linux cool

Une autre bonne lecture : Bash-Prog-Intro-HOWTO.html.

Utilisateurs LinuxLes utilisateurs

Linux est multi-utilisateurs. Même si vous êtes seul, il est indispensable de créer au moins un compte utilisateur !

La raison en est simple : le chef (root) peut tout faire, y compris planter la machine (par exemple en dézippant un fichier dans un disque plein), ou tout effacer (rm /* au lieu de rm *) ! Il est fortement déconseillé de lancer X sous root (car X accède au matériel, et il a le pouvoir de tout bloquer, ce qu'il ne se gène pas pour faire). Vous verrez que pour effectuer les commandes, il est facile de lancer le compte root sans avoir besoin de quitter votre compte utilisateur.
Bref, oubliez un peu vos habitudes Windows ; c'est un OS différent.

Les diverses informations (noms, groupes, mots de passe) des comptes utilisateurs sont stockées dans 3 fichiers :

  1. /etc/passwd contient la description de tous les utilisateurs du système. Chaque ligne contient :
    login:mot_de_passe(ou x si shadow):UID:GID:commentaires:répertoire_personnel:shell
  2. /etc/group : description de tous les groupes du système. N'Y figurent que les utilisateurs membres d'un groupe secondaire. Chq ligne se présente ainsi :
    nom:mot_de_passe(ou x si shadow):GID:liste_des_membres(virgule=séparateur)
  3. /etc/shadow contient les mots de passe cryptés des utilisateurs
  4. Ces 3 fichiers font partie de ceux à sauver avant une upgrade ou autre manip pouvant etre dangeureuse.

Utilisateurs

  • useraddAjouter un utilisateur : adduser duduche
    cette commande crée en même temps un répertoire /home/duduche (noté ~/ dans les docs), dans lequel Duduche aura ses fichiers. Les autres (les membres du groupe, ou tous les autres) ne pourront pas les lire ou les modifier, sauf s'il leur en donne le droit.
    adduser est un script qui appelle useradd et crée en plus le home du nouvel utilisateur.
    Le /home/duduche contiendra à sa création un certain nombre de fichiers cachés (commençant par '.'), qui pourront être édités selon les besoins. Ces fichiers sont des copies de ceux contenus dans /etc/skel.
    Les modifications concernant tous les nouveaux utilisateurs (wm par défaut, alias, path, etc...), doivent etre édités directement dans ces fichiers (en tant que root ).
  • Sans autre précision, ils appartiennent au groupe par défaut, appelé users. (Il y a 3 niveaux de droits : lire, écrire et exécuter, pour les trois niveaux d'utilisateurs : moi, le groupe, et tous, soit 27 combinaisons possibles pour un fichier => voir les droits ci-dessous).
  • Si votre commande adduser (ou useradd) ne fonctionne plus, vérifiez s'il n'existe pas un /etc/pwd.lock, et détruisez-le (rm /etc/pwd.lock).
  • Quels sont les utilisateurs actuellement connectés ? who. Qui suis-je ? whoami
  • Retirer un utilisateur et tous ses documents : userdel -r duduche.
  • Options (fonctionnent pour useradd, usermod, ainsi que groupadd et groupmod) :
      -g [groupe_principal] [nom_d'utilisateur] : fixe le groupe primaire (principal) du nouvel utilisateur &
      -G le fait pour le ou les groupe(s) secondaire(s) ...qui doi(ven)t déja exister (le(s) créer avant)
      -c permet d'ajouter un commentaire
      -d /home/_repertoire_ .ixe le répertoire personnel de l'utilisateur
      -e pour préciser la date d'expiration du compte
      -s /bin/bash [utilisateur] attribue le shell par défaut
  • Si votre commande adduser (ou useradd) ne fonctionne plus, vérifiez s'il n'existe pas un /etc/pwd.lock, et détruisez-le (rm /etc/pwd.lock).
  • Quels sont les utilisateurs actuellement connectés : who.
  • Qui suis-je : whoami.

Attribuer un mot de passe à un utilisateur :

Créer un compte utilisateur n'est pas suffisant pour que celui-ci puisse travailler sous Linux ; il faut lui donner un mot de passe.

Seul root peut changer le mot de passe d'un autre utilisateur :
passwd [nom_utilisateur], puis donner un mot de passe à l'invite de commande

passwd : change votre propre mot de passe (celui sous lequel vous etes logué).

Attention !Une faute fréquente des administrateurs débutants consiste à oublier de préciser le nom de la personne à qui l'on change le mot de passe... ce qui revient à changer son propre mot de passe !

Cracker un mot de passe prend probablement moins de temps que vous ne l'imaginez.
Je vous propose des infos & une méthode qui améliore considérablement la sécurité lors du choix d'un mot de passe.

Comment changer d'utilisateur useredit

logout, exit ou <Ctrl-d> quitte votre compte actuel. Sinon, accédez à un deuxième terminal en mode console par <Alt-F2>, et répondez à la demande de login .
Vous pourrez rebasculer sur la première console par <Alt-F1>.

  • Pour passer provisoirement en mode super-utilisateur sur la même console : su ( = switch user).
  • Pour passer provisoirement sur un autre compte non root : su - utilisateur. Cette possibilité est très intéressante : vous lancez un utilisateur normal pour votre travail ordinaire, et, si vous avez besoin de faire un réglage : su.
    Si vous oubliez le -, le système refusera de changer d'utilisateur au motif que vous êtes dans le répertoire du chef.
  • Si vous êtes passé de "duduche" à "Bebert" par su - bebert, ne repassez pas à "duduche" par su, mais par logout (= <Ctrl-d>) ou exit.
  • Si vous voulez simplement lancer un programme sous le compte root :
    su -c le_programme, puis répondez au mot de passe demandé, c'est tout.
  • Si vous voulez aller directement dans le répertoire du chef avec les variables du chef en devenant le chef : su -.
    et si vous voulez allez directement dans votre home : su ~
  • Un problème en ajoutant un utilisateur ? voyez ce point dans la Méta-FAQ
Changer de mot de passe .

passwd duduche sous root ou passwd tout court sous le compte de duduche.

Les groupes

  • groupaddCréer un groupe : groupadd le_nouveau_groupe. Nouveau groupe enregistré dans /etc/group.
  • groupdelSupprimer un groupe : groupdel groupe (options : voir ci-dessus).
  • Ajouter un ou plusieurs utilisateur(s) à un groupe : adduser group user, ou :
    gpasswd <-option> user1,user2,...] [<-autre_option> user3,...] groupe
    Options : -A ajouter administrateur(s) du groupe ; -M ajouter utilisateur(s) ; -d retirer utilisateur(s)
  • Identifier les groupes auxquels appartient l'utilisateur bebert : groups bebert
  • chgrpChanger un fichier de groupe : chgrp autre_groupe <fichier> n'est possible que si le propriétaire qui lance la commande appartient aux 2 groupes (source et cible).

Les droits

  • Si vous faites un ls -l sur un fichier quelconque, vous verrez les droits concernant ce fichier :
    -rw-r--r -- 1 bebert users 231473 nov 2 2003 <fichier>
  • Le premier tiret - signifie qu'il s'agit d'un fichier simple (remplacé par d pour un répertoire et l (L) pour un lien),
  • Viennent ensuite 3 groupes de "rwx" (r=read, w=write, x=execute) :
      - le premier représente les droits du propriétaire/user,
      - le deuxième concerne les droits du groupe,
      - le troisième ceux du reste du monde (others).
    Le cas classique est le fichier sur lequel l'utilisateur a tous les droits, le groupe seulement la lecture et le reste du monde rien du tout. Cela donne rwxr-x--x.

Notation octale

  • C'est peut-etre la plus pratique :
  • Dans ce système, r vaut 4, w vaut 2 et x vaut 1. Dans notre exemple, rwxr-x--- vaut 750 ( = 400+200+100 +40+10).
  • Le premier groupe de lettres rwx (vu ci-dessus), correspond aux centaines, le deuxième aux dizaines et le dernier aux unités.

  • C'est plus facile avec un tableau d'équivalence :

    Propriétaire Groupe Others
    droit r (lecture) w (écriture) x (exécution) r w x r w x
    octal 400 200 100 40 20 10 4 2 1
    binaire 100 010 001 100 010 001 100 010 001

  • Pour attribuer tous les droits à tous sur un fichier vous faites :
    chmod 777 le_fichier_que_je_donne_a_tout_le_monde . (777 = rwxrwxrwx en notation octale !o)
    Pour attribuer tous les droits au seul propriétaire à un fichier/répertoire:
    chmod 700 le-fichier-que-je-donne-uniquement-au- propriétaire

Droits spéciaux

lolPour compliquer encore plus, il existe des bits qui donnent des caractères particuliers aux fichiers :

  • Le setuid, qui donne les droits du propriétaire à un autre utilisateur.
  • Exemple : faites ls -l /usr/bin/passwd. Le résultat vous donne :
    -r-s--x--x 1 root root 22656 oct 24 1999 /usr/bin/passwd
  • Vous constatez un s dans les droits utilisateurs. Cela signifie qu'un utilisateur quelconque peut utiliser ce programme et obtenir le même résultat que s'il était root , c'est à dire écrire dans le fichier /etc/passwd, réservé au root. Les changements peuvent se faire par chmod -s, ou chmod g-s, ou toute commande adaptée à vos besoins. attention Un fichier setuid root est un gros trou potentiel de sécurité.
  • Enfin, le sticky-bit (t) permet d'empêcher l'effacement d'un fichier, même situé dans un répertoire ouvert à tous.
  • Pour information, ces bits supplémentaires (s et t) sont enregistrés dans un quatrième chiffre placés avant les trois chiffres simples des droits. Sa valeur habituelle est de 0, ce qui fait qu'on peut le sous entendre.
  • Conclusion :
  • Essayez chmod 777 fichier_test, puis ls -l.
  • Pour les répertoires, le droit x ne vaut pas pour l'exéc'(ution (avez-vous déjà essayé d'exécuter un répertoire ?), mais pour le droit de passage.
    attention Aussi, vous pourrez effacer un fichier ne vous appartenant pas dans un répertoire où vous avez le droit d'écriture, mais pas le lire.

Plus de délails : man chmod

Comment changer de console virtuelle sans avoir lancé X Window ?

En mode console, tapez <Alt-F2>, et vous voyez une nouvelle console apparaître. Vous pourrez y lancer le même compte, ou celui d'un autre utilisateur. ça marche généralement jusqu'à F6. ç a, c'est le vrai OS multi-utilisateur

Pour revenir sur votre premier compte, tapez <Alt-F1>. Vous venez de régliser une chose impossible sur les OS grand public habituels : lancer plusieurs utilisateurs simultanément. Vous voyez que ça valait le coup d'installer Linux !

Pour info, maintenant que vous êtes un simple utilisateur, votre invite se termine par $.

La commande ne marche pas, ou le chemin de recherche PATH

Note : Si à l'installation d'un package, vous buttez sur un message du type :
L'installation a échoué
lib[truc]-2.5.so.5 is needed by [package]-1.4.1-1mdk
, alors que 'lib[truc]' est dans votre système et que son emplacement est dans le $PATH (voir-cidessous), vous pouvez tentez de l'installer quand-meme avec la commande (Mandrake/Mandriva) :
urpmi --allow-force [package] et surtout, testez s'il fonctionne quand meme

Syntaxe : commande [espace] -option [espace] fichier_source [espace] fichier_cible).
Attention aux majuscules et aux minuscules, aux espaces, aux tirets et aux points (Syntaxe habituelle :

  • Il faut se rappeler qu'une commande qui fonctionne ne renvoie souvent *rien*. suite Souvent, vous n'aurez un message au prompt que si la commande échoue, ce qui n'est pas plus mal :)
  • Sinon, la commande n'existe peut-être pas, ou alors elle n'est pas dans le chemin de recherche (le PATH).
    Cherchez-la déjà par un find / -name <ma commande> (vous avez droit aux jokers : * remplace tout plein de caractères, ? en remplace un et un seul).
    Si elle existe, mais pas au bon endroit, tapez-la avec son chemin entier : /usr/local/bin/[macommande] par exemple, ou bien cd /[lerepertoireoùestmacommande], puis ./[macommande] (ndlr, pour augmenter la sécurité & contrairement à DOS, le répertoire courant n'est pas dans le path, il faut taper ./ pour exécuter une commande située dans le répertoire courant).
    Si tout va bien, enrichissez définitivement le PATH (dans /etc/profile).
  • Le PATH détermine où les commandes pour bash sont situées, & est aussi utilisé pour configurer des scripts (càd. vérifier où sont les programmes, les versions et tester les headers).
    ld.so.conf détermine où mes scripts de configuration et les programmes doivent trouver leurs librairies.
    ldconf update le système de façon qu'il soit à jour avec les librairies ajoutées (installation ou nouveau chemin / path dans ld.so.conf).

    Pour voir le PATH, tapez : echo $PATH.
    Pour enrichir le path (ajouter un chemin) : PATH=nouveaupath:$PATH. Par exemple si vous voulez ajoutez /home/bidule/lib, faites PATH=/home/bidule/lib:$PATH.
    Attention! N'oubliez pas le $ sinon le path que vous vouliez rajouter remplace l'ancien... et toutes vos commandes deviendront inopérantes ouiiin !. Pour l'enrichir définitivement, éditez le fichier /etc/profile
  • Une autre possibilité est que le fichier existe, mais n'est pas exécutable. Alors, tapez $ chmod +x lefichier. S'il ne vous appartient pas, c'est root qui doit le faire.
  • Encore plus fort (il faut reconnaître que Linux n'a pas son pareil pour nous compliquer la vie) : si la commande se situe sur un disque mounté sans les droits d'exécution (ce qui est la valeur par défaut), ça ne marche pas.
    Éditez alors le fichier /etc/fstab et rajoutez exec sur la ligne de la partition concernée. Puis vérifiez les droits en tapant : mount.
    S'il est mounté avec le valeur default, la commande devrait vous renvoyer noexec.
  • De plus en plus fort : si le cdrom est gravé en Rockridge, seul le root peut y accéder, sauf si... vous rajoutez norock au /etc/fstab (vous n'aviez pas deviné tout seul ?-)
  • Si le /etc/fstab vous rebute, vous pourrez vous rabattre sur un programme graphique comme kfstab, bientôt en standard.
  • Vous pouvez récupérer les commandes précédentes par la flèche <Haut>. C'est quand même plus facile que de tout retaper ! Les 500 dernières commandes sont dans ~/.bash_history.
    pour ne pas farfouiller 1/4 d'heure dans les dernières commandes, tapez !debut_de_la_commande (ex : !mou...).
    Cela vous tapera automatiquement la commande complète telle que vous l'avez tapée la dernière fois (ex : mount -t iso9660...) !
  • Encore plus fort : la recherche incrémentale inversée : Tapez <Ctrl> <r>. Un prompt spécial apparaît. Ensuite, saisissez un morceau de la commande souhaitée. Dès la première lettre saisie, le shell fait automatiquement la recherche dans l'historique et vous propose en temps régl la dernière commande complète comportant cette lettre. Complétez avec d'autres lettres si nécessaire, ou appuyez à nouveau sur <Ctrl> <r> pour remonter plus haut dans l'historique des commandes.
  • Autre possibilité : la commande history affiche l'historique des commandes. Un tube, et vous atteignez facilement la commande recherchée : history|grep un_morceau_de_l_ancienne_commande.
    Une variante de history : fc -l -10 affiche les 10 dernières commandes (man bash).
  • Plus vicieux : si vous tentez d'effacer un fichier qui commence par -, son nom sera considérée comme une option. Vous pouvez faire rm -- -lenomdufichier ou rm /-lenomdufichier.

Les répertoires, comment ça marche ?

Faites ls, et vous avez la liste des fichiers et répertoires du répertoire courant (dans notre exemple, ls dans /home donne duduche /). Pour savoir quel est le répertoire courant : pwd.

Pour voir les fichiers cachés : ls -a. (ils commencent par un point).

Pour avoir des délails : ls -l vous donne le type de fichier, le propriétaire, les droits, et, si c'est un lien, la cible. ls -l lefichier donne les caractéristiques d'un seul fichier.

Vous voulez différencier les différentes sortes de fichiers . ls --color.
Vous voulez que, durant cette session, votre ls soit toujours en couleurs ? alias ls='ls --color'. Attention aux quotes (apostrophes bizarres qui s'obtiennent par <AltGr-7> sur un clavier Français).
Vous voulez que votre alias soit activé pour toutes les sessions . Insérez-le dans /etc/bashrc. (Voir "Créer un alias").

Votre écran n'est pas assez grand pour voir tous les noms ? Faites un tube : ls|less ou ls|more.

Pour changer de répertoire : cd duduche vous amène dans le répertoire duduche, lui-même situé dans le répertoire courant (ici, home ). Sinon, tapez le chemin complet : cd /home/duduche.

Pour remonter d'un niveau : cd ..(ne pas oublier l'espace). Plus simple : s pour supérieur comme alias sur certaines distributions (Mandrake/Mandriva).

Pour retourner chez soi (home ) : cd tout court.

Pour aller au répertoire o vous étiez : cd -. Idéal pour faire des allers-retours entre deux répertoires.

Copier un fichier : cp fichiersource fichiercible fait une copie du fichier fichiersource vers le fichiercible. mv fichiersource fichiercible remplace fichiersource par fichiercible (et permet les changements de nom ou d'emplacement).

Changer la date d'un fichier : touch -m 05041020 fichier_a_changer_de_date attribue le 4 Mai à 10 h 20 à votre fichier.

Mais à quoi servent tous ces répertoires ?

C'est un gros problème lorsque l'on débute sous Linux : les arborescences varient (un peu) d'une distribution à l'autre. Si vous disposez d'un bouquin sur Slackware mais d'une Redhat sur votre micro, il faudra traduire les chemins (la commande find sera utile !!).

Grosso-modo :
/bin et /sbin : programmes exécutables de base (sbin = programmes du chef).
/dev : les périphériques. Un certain nombre de ces fichiers sont des liens symboliques vers les vrais fichiers utilisés par le système : /dev/mouse > dev/ttyS0 (souris com1) ou /dev/psaux (souris ps2), /dev/cdrom > /dev/hdb (cdrom IDE sur la première nappe), /dev/modem > /dev/ttySX... Cela permet aux applications de ne pas se préoccuper du système : les appels aux périphériques sont redirigés aux bons endroits. Dans le kernel 2.4, seuls les périphériques effectivement présents sur le système sont listés ici.
Si vous avez besoin de créer un descripteur : commande mknod (maniement compliqué et rarement utile pour une utilisation de base).
/usr : les exécutables ordinaires (/usr/X11R6/bin), les sources (/usr/src) et leurs librairies (/usr/lib)
/var : des fichiers de taille variable. On y trouve souvent des paramétrages et des librairies de programmes.
/etc : les paramétrages : fstab pour les systèmes de fichiers, inittab pour le script de démarrage (runlevel=5 pour le démarrage en mode graphique), dosemu.conf, wine.conf, lilo.conf (pour paramètrer le mode de démarrage de LILO : délai, nom du noyau à lancer par défaut en premier...), /etc/rc.d/rc.local pour les programmes à lancer automatiquement au démarrage, /etc/rc.d/rc.serial: pour les paramétrages du port série...NB : les distributions non basées sur Red hat sautent le répertoire /etc/rc.d.
-/lib : les bibliothèques (librairies) utilisées par les programmes.
/proc : vous n'avez rien à y faire. Permet entre autres de connaître les ressources utilisées par les différents périphériques (mémoire, irq, DMA)
/boot : dans Redhat : le noyau (directement dans la racine sous Slackware). Il s'appelle vmlinuz (noyau compacté) ou kernel-2.x.xx. ou n'importe quoi d'autre, pourvu que ça corresponde au paramétrages du système de boot (lilo ou chos ).. Si vous bootez par loadlin (depuis dos), ne cherchez pas le noyau ici, il est sur la partition DOS.
/root : le home du super-utilisateur
/home/[toto...] : les répertoires personnels des utilisateurs.
/mnt : les disques (ou partitions) que vous voulez rattacher à votre arborescence : /mnt/cdrom, /mnt/floppy... Notez que, si ça vous chante, vous pouvez les mounter n'importe où ailleurs et sous n'importe quel (ce que font certaines distributions : /cdrom et /A).
Il y a des pièges ! Tout plein de répertoires portent le même nom, mais avec un chemin différent (bin, lib, etc et d'autres). Lorsque vous repérez un fichier important, notez-en le chemin par écrit (du moins au début...).

Je ne sais pas éditer les fichiers de paramétrage :-(

Voyez aussi ces guides pour débuter dans l'édition de fichiers en mode console.

Pas de problème : vi /etc/[fichier_que_je_veux_modifier] (prononcez vi-aïe ).

Si le nom existe, vous trouverez un texte plein d'explications (précédées par des # : remarques, non exécutées). Sinon, vous trouverez un fichier vide, que vous venez de créer.

astuce Astuces
Pour être sûr de bien taper les noms de fichiers, laissez Linux faire ! Tapez vi /etc/com + la touche [Tab]. Si le fichier est le seul à commencer comme ça, le nom va se compléter tout seul. Très pratique ! ça marche aussi pour les commandes (ça s'appelle l'auto-complètement).
Encore plus simple : si vous avez surligné le nom du fichier trouvé par un locate ou un ls, un simple clic sur le bouton central de la souris (ou les boutons D et G ensembles si vous avez accepté cette émulation pour une souris 2 boutons) fait un superbe "coller".
Pour toute modification, commentez la ligne à modifier (débutez par un #), puis recopiez-la avec vos paramètres. Vous pourrez plus facilement revenir à la version précédente si ça ne marche pas. Autre méthode, les copies de secours des fichiers, souvent automatiques (terminaison .)
Vi vous fait peur ? C'est vrai qu'il est plutôt moche, mais il marche très bien, même quand rien ne marche. La plupart du temps, vous pouvez vous en sortir avec 4 commandes seulement :
Pour écrire : <Esc> puis i (=mode insertion). Dans certaines versions, la touche <inser> marche pareil.
Pour effacer : <Esc> puis x (ou la touche <Eff> en mode insertion, parfois).
Pour quitter sans sauver : <Esc>: q!.
Pour quitter en sauvant : <Esc>: wq! (ou <Esc><Esc>x) -Attention, ces commandes se tapent l'une à la suite de l'autre.
Si vous connaissez déja ces commandes, en voici quelques autres :
Copier / coller une ligne : <Esc> puis <Maj-y> puis <p>. Le <Maj>, (ou le redoublement de la lettre) s'applique à la ligne entière.
Effacer une ligne :<Esc> puis dd.
Aller en fin de ligne : $. Et début de ligne : 0 (zéro).
astuce Ne retapez pas <Esc> à chaque fois. Il suffit que vous soyez en mode commande pour enchaîner toutes ces commandes.
Chercher un mot : /lemotquejecherche. Occurrence suivante : <n>.
Pareil avec less ou man. Vous avez un historique des recherches avec la flèche <Haut>.
Plus de délails : http://echo-linux.alienor.fr/articles/vi/vi.html.
Et tous les délails sur VI en tapant <F1>.

Toujours pas convaincu ? Alors lancez Midnight Commander ( mc ), il contient un éditeur de fichiers compréhensible en tapant sur F4. MC fonctionne aussi bien en mode console et est présent sur à peu près toutes les distributions. De plus, il sait travailler avec les fichiers zip, tar, gz, rpm et même HTML !

Sinon, essayez emacs, Et sous X, kedit, gnotepad et plein d'autres.

Encore plus simple :
- echo lacommandequejerajoute >> lefichierquejerenseigne

Trouver une chaîne de caractères :

find /repertoire_ou_je_cherche] -name '*'|xargs grep la_chaine_que_je_cherche

Autre méthode :
- find . -type f -exec grep toto {} /; -print >resultat.txt.
Dans cet exemple, on cherche la chaîne toto dans le répertoire courant (indiqué par le ".").

Je voudrais lire mes fichiers depuis MS-Windows ou Mac OS

Bonne nouvelle : vous pouvez non seulement les lire, mais aussi les éditer/déplacer/supprimer aisément !

Pour les PC il ne faut plus utiliser fsdext2, mais explore2fs , programme composé d'un seul fichier pour win9x ou NT, qui se lance sans aucun paramétrage et qui n'interfère pas avec votre autre système. Ensuite, vous pouvez:
voir (et éventuellement écrire) vos fichiers texte avec notepad, wordpad ou Edit+ (mieux), vos fichiers gif ou jpg ou parcourir les arborescences.

Pour les Mac, deux solutions s'offrent à vous. (Merci à Etienne Herlent pour tout ce qui concerne le Mac)
La première et la plus ancienne est d'utiliser LinuxDisks. qui permet l'accès en lecture et écriture aux partitions ext2fs depuis MacOS.
ATTENTION : il existe 2 versions de LinuxDisks :
- LinuxDisks.10d6 (http://www.linux-france.org/article/materiel/mac/tc/LinuxDisks.1.0d6.sit)
- LinuxDisks.10d7 (http://www.linux-france.org/article/materiel/mac/tc/LinuxDisks.1.0d7.sit).
attention.gif - 1kb La version 10d6 n'est utilisable qu'avec les distributions de Linux antérieures à la mi-1998 où le système de ficher était en big endian (MkLinux DR2, par exemple).
La version 10d7 n'est utilisable qu'avec les distributions postérieures à mi-1998 (comme MkLinux DR3, Linux PPC R4 et suivantes, ext2fs en little endian).
Ne vous trompez pas de version au risque de perdre totalement le contenu de vos disques Linux.
La deuxième solution est d'utiliser MountX.
à la différence de LinuxDisks, MountX ne permet que l'accès en lecture et uniquement sur les systèmes de fichier en little endian. MountX est disponible à http://calvaweb.calvacom.fr/bh40.

Support du système de fichiers Ext2 & 3 sous Windows

Ext2 IFS For Windows est un pilote windows qui lui permet de gérer les partitions aux formats Ext2/3 en lecture/écriture. Le pilote est un fichier .sys de ~45 ko qui procure à Windows NT4.0/2000/XP le plein accès aux volumes Ext2 (et Ext3). Ce qui peut s'avérer utile si vous avez à la fois Linux & Windows installés sur votre orfinateur. En plus, ce pilote windows est freeware
Détails / téléchargement : http://www.fs-driver.org/

kozakiMise à jour

Les grandes distributions disposent de solutions de mise-à-jour globales puissantes et devenues très simples d'utilisation

Pour Mandrake/Mandriva 8 et +, utilisez urpmi. Son utilisation et celle de son "front-end" graphique rpmdrake est décryptée ici.

Les distributions Debian et basées sur Debian disposent d'un outil au moins aussi puissant : apt-get, dont l'interface graphique Synaptic"se révèle très simple et claire d'utilisation (merci Guillaume pour l'info).

Fedora et RedHat font aussi bien avec yum.

Gentoo propose son outil idéalement à la pointe : emerge.

Trop cool pour Internet Explorer