Programmation et Administration GNU/Linux. Alexandre Passant, Pascal Crépey



Documents pareils
Aide-Mémoire unix. 9 février 2009

Outils pour la pratique


Tutoriel Création d une source Cydia et compilation des packages sous Linux

Premiers pas en Linux

TP1 - Prise en main de l environnement Unix.

C.M. 1 & 2 : Prise en main de Linux

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Introduction au Système d Exploitation Unix/Linux

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Chapitre 3 : Système de gestion de fichiers

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

La mémoire. Un ordinateur. L'octet. Le bit

Atelier La notion de session utilisateur sous Linux

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

TP 1 Prise en main de l environnement Unix

Personnes ressources Tice. Académie de Rouen

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Il est courant de souhaiter conserver à

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Projet Administration Réseaux

Chapitre 10 : Logiciels

Atelier individuel. Linux 101. Frédérick Lefebvre & Maxime Boissonneault frederick.lefebvre@calculquebec.ca U. Laval - Janv. 2014

Année Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

Installation software

Contents. 1 Premiers pas en Linux. 1.2 Généralités. 1.1 Bref historique Linux

Bon ben voilà c est fait!

Installation d ORACLE 10g sous Debian Etch

Systèmes informatiques

Enoncé du TP 8 Système

Comment configurer Kubuntu

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

TP 4 de familiarisation avec Unix

Cloner un disque dur

Introduction à l informatique en BCPST

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

Programmation C. Apprendre à développer des programmes simples dans le langage C

Guide d'installation de la base de données ORACLE 10g ( ) pour linux FEDORA CORE 4.

Architecture de la plateforme SBC

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

UBUNTU Administration d'un système Linux (4ième édition)

TP1 : Initiation à l algorithmique (1 séance)

Monter automatiquement des disques distants ou locaux avec automount/autofs

sshgate Patrick Guiran Chef de projet support

TD 1 - Installation de système UNIX, partitionnement

Manuel de System Monitor

La Comptabilité UNIX System V Acctcom

Serveur de sauvegardes incrémental

Entraide-Info. Entraide pour les informaticiens LINUX FEDORA CORE 4 : ADMINISTRATION DU SYSTEME OLIVIER D.

Linux 1: Présentation

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux

Cours Linux version 0.0.9

Environnements informatiques

TP1. Outils Java Eléments de correction

Algorithmique et Programmation, IMA

L informatique en BCPST

Session 8: Android File System

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012

Installation d'un serveur FTP géré par une base de données MySQL

TD séance n 2c Mise à jour des Systèmes

1 Démarrage de Marionnet

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

Atelier Migration. Mohamadi ZONGO Formateur assistant Kassim ASSIROU Atelier Migration.

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Cours Programmation Système

Serveur Subversion Debian GNU/Linux

Les différentes méthodes pour se connecter

Projet Semestre2-1SISR

Module : Informatique Générale 1. Les commandes MS-DOS

Programmation système I Les entrées/sorties

Guide Pratique: Installation Réseau

Administration de Parc Informatique TP07 : Installation de Linux Debian

Cours de Système : Gestion de Fichiers

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Séance 0 : Linux + Octave : le compromis idéal

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

IFT Systèmes d exploitation - TP n 1-20%

Polycopié Cours Système d Exploitation I. Programme : Filière SMI S3

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

INFO-F-404 : Techniques avancées de systèmes d exploitation

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Gérard Castagnoli OSU PYTHEAS 25/06/2013 VVT2013 1

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Environnement Informatique EMSE Linux

1 Configuration réseau des PC de la salle TP

Oracle 11g. Installation et administration. Claude Duvallet 1/36

REPUBLIQUE ISLAMIQUE DE MAURITANIE

Installation d'un serveur sftp avec connexion par login et clé rsa.

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

UBUNTU. Administration d un système Linux. 4 ième édition. Nouvelle édition. Luc DEMARET Sébastien ROHAUT

Transcription:

Programmation et Administration GNU/Linux Alexandre Passant, Pascal Crépey 2005

Table des matières 1 Linux et GNU, un peu d histoire 2 1.1 Le projet GNU.......................... 2 1.2 Linux............................... 3 1.3 GNU et Linux........................... 3 1.4 Les distributions......................... 4 2 Notions d administration GNU/Linux 5 2.1 Etre root sous Linux....................... 5 2.2 Utilisateurs et groupes...................... 7 2.3 Ajout d applications....................... 8 2.4 Recompiler son noyau....................... 10 2.5 Gestion des services........................ 12 2.6 Monter des partitions....................... 13 3 Fichiers et repertoires 15 3.1 Se déplacer dans l arborescence................. 15 3.2 Création et suppression de fichiers et répertoires........ 16 3.3 Copie de fichiers et répertoires.................. 16 3.4 La commande ls......................... 17 3.5 Modification droits d accès avec chmod............. 18 4 Outils en ligne de commande 21 4.1 L aide sous Linux......................... 21 4.2 Affichage du contenu d un fichier................ 21 4.3 Manipulation de fichiers avec grep............... 22 4.4 Recherche de fichiers dans l arborescence............ 23 4.5 La commande sed........................ 23 4.6 Archivage de données....................... 25 4.7 Gestion des processus....................... 27 1

TABLE DES MATIÈRES 2 5 Ecriture de scripts bash 29 5.1 Définition du shell........................ 29 5.2 Tubes et redirections....................... 29 5.3 Variables.............................. 30 5.4 Ecriture de scripts bash..................... 32 5.5 Structures de contrôle...................... 32 5.6 Fonctions............................. 35 5.7 Commandes standard....................... 36 6 Outils de programmation en langage C 37 6.1 Compilation avec gcc....................... 37 6.2 Gestion des librairies....................... 38 6.3 Makefiles.............................. 40 6.4 Débogage............................. 43 7 Quelques références 46 7.1 Ouvrages............................. 46 7.2 Liens sur le web.......................... 46

Chapitre 1 Linux et GNU, un peu d histoire 1.1 Le projet GNU GNU, acronyme récursif de GNU is Not Unix, est un projet qui a vu le jour par l intermédiaire de Richard Stallmann, au début des années 1980. L anecdote veut que celui-ci, alors chercheur au MIT 1, souhaitait obtenir le code source d un driver pour la nouvelle imprimante dont son laboratoire venait de faire l acquisition. Devant les différents refus qu il essuya de la part du constructeur, il realisa alors compte à quel point cette pratique consistant à ne pas diffuser les sources d une appplication était contraignante, et décida dès lors de se lancer dans un projet de développement d un OS 2 de type Unix totalement libre, le système GNU, régissant ainsi les principes de base du logiciel libre 3 : Liberté d executer le programme, pour tous les usages ; Liberté d étudier le fonctionnement du programme, et de l adapter à ses besoins ; Liberté de redistribuer des copies, donc d aider son prochain ; Liberté d améliorer le programme et de publier les amélioration, pour en faire profiter la communauté. Différentes licences furent issues de cette philosophie 4, dont la plus con- 1 Massachusetts Institute of Technology : http ://web.mit.edu 2 Operating System, en français Système d Exploitation 3 Pour en savoir plus : http ://www.gnu.org/philosophy/free-sw.fr.html 4 Liste complète : http ://www.gnu.org/licenses/licenses.fr.html 3

CHAPITRE 1. LINUX ET GNU, UN PEU D HISTOIRE 4 nue est sans nulle doute la GNU General Public Licence 5, licence utilisée notamment par le noyau Linux. Afin de mener à bien son projet, Stallmann créea quelques années plus tard, en 1984, la Free Software Foundation 6, destinée à apporter des fonds au projet et à lui offrir une structure officielle, utile notamment à des fins juridiques pour protéger les violations éventuelles de la GPL. 1.2 Linux En 1991, Linus Torvalds, étudiant finlandais, entreprit l écriture d un système d exploitation de type Unix, basé sur Minix 7, un clone gratuit d Unix. Au fur et à mesure de l évolution de son système, différentes personnes vinrent se greffer au projet. En effet, le mode de développement de Linux est soumis à un mode collaboratif, comme bon nombre d applications libres. Ainsi, un groupe d individus coordonne le projet, et différents développeurs viennent s y ajouter. Linux est donc un système d exploitation de type Unix libre, au sens défini ci-dessus par la FSF. 1.3 GNU et Linux Comme énoncé plus haut, le projet GNU visait à son origine à développer un OS complet. De nombreux applications sortirent de ce projet, sous forme de logiciel libre, parmi lesquelles : gcc, compilateur C ; emacs, éditeur de texte avancé ; gnome, window-manager. Cependant, le noyau de ce système, le Hurd 8, n etant toujours pas exploitable, la décision fut prise d intégrer Linux comme noyau du projet GNU. De ce fait, il serait plus logique de parler de GNU/Linux en lieu et place de Linux, même si on a tendance aujourd hui à l abréger (involontairement ou non), en Linux. 5 GPL, voir http ://www.gnu.org/copyleft/gpl.html 6 FSF, voir http ://www.fsf.org 7 Voir www.cs.vu.nl/ ast/minix.html 8 www.gnu.org/software/hurd/hurd.html

CHAPITRE 1. LINUX ET GNU, UN PEU D HISTOIRE 5 1.4 Les distributions Lorsqu on souhaite installer un système GNU/Linux, a moins d être un expert, on préfère installer un package comprenant à la fois un noyau et des applications (compilateurs, server X,...). On nomme ces ensembles {noyau + applications} des distributions. Il en existe une multitude, qui peuvent être destinées à des publics différents, que cela soit par rapport au niveau d expertise de l utilisateur (débutant, expert...), qu à l usage à laquelle celle-ci est destinée (station de traveil, serveur...) Parmi toutes ces distributions, nous pouvons citer : Red Hat : http ://www.redhat.com Mandrake : http ://www.mandrakelinux.com Slackware : http ://www.slackware.com Debian : http ://www.debian.org La distribution Debian a la particularité, contrairement aux autres distribuitions ci-dessus, de ne pas être issue d une société mais d un groupement d individus qui participent bénévolement au développement et à la diffusion de celle-ci. Celle-ci est réputée pour sa fiabilité et sa robustesse. Il existe également des distributions Linux sur des CD bootables, ce qui permet d essayer Linux sans avoir à l installer sur son PC. Il s agit d un excellent moyen de voir à quoi Linux ressemble avant de l adopter définitivement. Enfin, pour les experts, le projet Linux From Scratch explique pas à pas la création de sa propre distribution sur http ://www.linuxfromscratch.org.

Chapitre 2 Notions d administration GNU/Linux Ce chapitre présente différentes notions d administration sous Linux. On introduira le concept de root, et quelques notions nécessaires à la bonne configuration de son système. 2.1 Etre root sous Linux Etre root, dans quel but? Etre root 1 sous Linux, c est être complètement maître de son système. Ceci implique la possibilité de controler totalement sa station de travail ou son serveur (ajout de programmes, d utilisateurs...), mais oblige également à être très prudent quand aux manipulations effectuées puisque la moindre erreur peut-etre fatale. Ainsi, un rm -rf mal placé, et c est l ensemble du contenu du disque dur qui peut passer à la trappe... Il est donc conseillé de ne passer en root que lors des manipulations ou cela est nécessaire, et d utiliser sa station en tant qu utilisateur normal dans la majorité des cas. La plupart des distributions proposent de ce fait dès l installation de créer un utilisateur basique, après avoir demandé de choisir le mot de passe root, qu il est bien entendu indispensable de conserver (et ce discrètement!). 1 Ou super-utilisateur 6

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 7 Connection en root Vous pouvez vous connecter en root soit par l interface de login habituel, soit en tapant su dans un shell lorsque vous êtes connecté en tant qu utilisateur standard. Dans ce cas, le password root vous sera bien entendu demandé. alex@zebulon:~$ su Password: zebulon:/home/alex# Commande sudo Il est recommandé d utiliser la commande sudo, lorsque vous avez une opération nécessitant l accès root à effectuer, particulièrement dans le cas d un environnement partagé. L utilisation de sudo <command> lancera command en tant que root, après avoir demandé non pas le mot de passe root mais celui de l utilisateur courant. alex@zebulon:~$ sudo vim /etc/groups We trust you have received the usual lecture from the local System Administrator. It usually boils down to these two things: #1) Respect the privacy of others. #2) Think before you type. Password: Il faut pour ceci que l utilisateur ait été déclaré comme apte à utiliser cette commande, par l intermédiaire de la commande visudo. Cette commande permet également de définir quels commandes peuvent être utilisées par l utilisateur en question. Cette commande présente 3 avantages majeurs par rapport a su : Le mot de passe root n est pas connu des utilisateurs standards du système Il est possible de n autoriser que certaines commandes Les commandes sont logguées, ainsi que le login de l utilisateur ayany lancé la commande

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 8 Bien entendu, tout ce que vous ferez par l intermédiaire de sudo sera interprété comme si vous étiez root. Il convient donc de prendre les précautions d usage... 2.2 Utilisateurs et groupes Ajout et suppression d utilisateurs La commande adduser permet d ajouter un utilisateur au système. Il est possible de spécifier directement le login de l utilisateur à ajouter en utilisant adduser <username> zebulon:/home/alex# adduser moi Adding user moi... Adding new group moi (1005). Adding new user moi (1005) with group moi. Creating home directory /home/moi. Copying files from /etc/skel Enter new UNIX password: Après le mot de passe, des informations complémentaires (shell par défaut, nom complet...) seront demandées, ainsi qu un mot de passe. Le root a la possibilité de changer celui-ci, mais pas de le retrouver, en cas d oubli par son propriétaire, par le biais de la commande passwd <username> Le changement par l utilisateur se fait par l utilisation de la commande passwd sans argument. La suppression d un utilisateur se fait grâce à la commande deluser <username>. Cette commande n efface pas le home directory de l utilisateur, il faut donc de le supprimer manuellement, si nécessaire. Les utilisateurs sont repertoriés dans le fichier /etc/passwd, dont voici un extrait root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh alex:x:1000:1000:alex,,,:/home/alex:/bin/bash mysql:x:101:102:mysql Server,,,:/var/lib/mysql:/bin/false postfix:x:102:1002::/var/spool/postfix:/bin/false

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 9 Il s agit ici d un fichier de type shadow, ou les mots de passe ne sont pas stockés (à privilégier). Chaque ligne est du type : login:password:uid:gid:infos:home:shell avec : login : le login de lutilisateur ; password : son mot de passe (x dans le cas d un fichichier shadow) ; uid : son identifiant utilisateur ; gid : son identifiant de groupe ; infos : ses informations complémentaires (nom complet, email...) ; home : son repertoire personnel ; shell : son shell, ou autre programme de démarrage. Ajout et suppression de groupes Pour ajouter un groupe, on peut soit utiliser la commande addgrp, soit éditer manuellement le fichier /etc/groups, dont voici un extrait exemple : root:x:0: daemon:x:1: bin:x:2: sys:x:3: www-data:x:4:alex,moi Chaque ligne est du type : name:infos:gid:users avec : name : le nom du groupe ; infos : ses informatios complémentaires ; gid : son identifiant de groupe ; users : la liste des utilisateurs du groupe. L ajout d utilisateurs à un groupe se fait par l édition de ce fichier. 2.3 Ajout d applications Sous Linux, les applications sont fournies soit sous forme de sources, soit sous forme de binaires (executables) packagés.

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 10 Installation à partir des sources Dans le cas d installation à partir de sources, l archive du programme comprend en général un fichier README spécifiant la procédure à suivre. Parmi les outils généralement utilisés dans l installation d un logiciel libre, on peut citer les suivants qui seront étudiés par la suite pour certains : compilateur C gcc ; make ; tar et gzip. Installation de packages Une façon plus souple pour l installation de logiciels libres et l utilisation de packages. Ceux-cis permettent à l utilisateur d installer sur son système le logiciel déjà compilé, sans avoir de ce fait à faire face aux problèmes classiques de recherche et installations de librairies, modifications de chemins... En contrepartie l utilisation pourra ne pas être optimale puisqu une application packagée est compilée pour un type de machine donnée, et non pas pour une machine particulière, comme lors d une installation à partir de sources. Le format standard est le format.rpm, instauré par la distribution Red Hat ; RPM signifie d ailleurs Red Hat Packet Manager. La commande principale pour gérer les packages.rpm est rpm. Elle peut s utiliser de la façon suivante : rpm -i <package.rpm> pour installer le package package.rpm ; rpm -e <package.rpm> pour supprimer le packag package.rpme ; rpm -U <package.rpm> pour mettre à jour le package package.rpm ; rpm -U --oldpackage <package.rpm> pour downgrader le package package.rpm ; rpm -a pour lister les packages installés. Installer des applications sous Debian La distribution Debian possède elle aussi son système de packages, en.deb. La commande permettant de gérer ces packages est apt, qui peut s utiliser de la façon suivante :

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 11 apt-cache search <package type> recherche les packages disponibles selon un critère donnée ; apt-get install <package name> installe le package séléctionné ; apt-get upgrade et apt-get dist-upgrade mettent à jour le système ; apt-get update met à jour la liste des packages située dans /etc/apt/sources.list. 2.4 Recompiler son noyau Recompiler, dans quel but? Recompiler son noyau, voilà une phrase qui fait souvent peur au débutant et laisse à penser qu il s agit d une opération délicate reservée aux apprentishackers ou aux pros de Linux. Il n en est rien et il s agit d une opération à laquelle vous aurez sans doute recours si vous souhaitez tirer complètement partie de votre système. Par exemple, il est fort probable que vous ayez à recompiler votre noyau si vous voulez ajouter à votre PC le support USB, installer votre WebCam ou configurer le support VFat qui vous premet de lire vos partitions Windows. Voyons ci-dessous les différentes étapes de la compilation et la mise en place d un nouveau noyau Récupérer les sources du noyau La première chose à faire est de récupérer les sources du noyau que vous souhaitez compiler, si celles-ci ne sont pas disponibles sur votre système. Vous pouvez récuperer celles-ci sur http ://www.kernel.org Les noyaux possèdent une numérotation du type x.y.z, par ex 2.4.18. Si le numéro du milieu (y) est pair, alors il s agit d un noyau stable. Dans le cas contraire, il s agit d un noyau en cours de développement Le 1er numéro (x) correspond à la versio ndu noyau, et le 3ème à la révision du noyau x.y Pour connaitre le noyau en cours, utilisez la commande uname -sr. Une fois le noyau récupéreré, décompressez le dans le répertoire /usr/src/linux/, et ce afin d avoir les sources de vos différents noyaux au même endroit (le choix de ce répertoire est uniquement une convention et non pas une obligation).

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 12 Créer le fichier de configuration Après avoir mis en place les sources du noyau, il est nécessaire de créer le fichier de configuration qui va servir à la compilation du noyau. Pour cela, il vous fait selectionner un certain nombres d options, à activer, à compiler en tant que module, ou à désactiver. Il existe 3 commandes pour ce faire : make config vous posera les questions une par une en ligne de commande. A la moijndre erreur, vous devrez recommencer. Cette solution n est donc à utiliser que si les suivantes ne marchent pas ; make menuconfig vous proposera de selectionner les différentes options via un menu simple, en mode curses, mais intuitif, et arborescent ; make xconfig vous proposera de selectionner les différentes options via une interface XWindows. A noter que le fichier de configuration produit sera le même quelle que soit la procédure. A vous de voir celle qui vous parait la plus simple. Compiler le noyau Les différentes étapes ci-dessous vous permettent de compiler le noyau : make dep pour la gestion des dépendances ; make clean pour supprimer les traces des anciennes compilations ; make bzimage pour compiler l image du noyau elle-même ; make modules pour compiler les modules ; make modules install pour installer les modules précédemment compilés (seront copiés dans le répertoire /lib/modules/x.y.z/. Mettre en place le nouveau noyau Une fois les opérations ci-dessus effectuées, votre nouveau noyau est prêt à l emploi. Il ne reste plus qu à le mettre en place. Après compilation, le noyau se trouvera dans /usr/src/linux/arch/i386/boot/bzimage 2. Il faut tout d abord copier le noyau dans le répertoire /boot, en le renommant, par convention, vmlinuz-version (eventuellement vmlinuz-version-options). Unefois le noyau copié dans le répertoire /boot, il est nécessaire de signifier son ajout au programmet d ammorçcage du système : lilo. Pour cela, il faut ajouter les lignes suivantes (les lignes image, label et root dépendant de i386 2 Ce répertoire correspond à l emplacement pour une architecture PC classique, d ou le

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 13 votre configuration) au fichier /etc/lilo.conf, en-dessous de la définition du noyau actuel. image=/boot/vmlinuz-2.4.18-video label=mon_nouveau_noyau root=/dev/hda2 read-only Taper ensuite la commande lilo pour prendre en compte les modifications. Au prochain reboot, vous devriez avoir votre nouveau noyau de proposé (si vous avez configuré lilo en mode graphique, man lilo pour plus d explications à ce sujet). 2.5 Gestion des services Niveaux d execution On définit 6 niveaux d execution d un système Linux, qui sont : niveau 0 : arrêt de la machine ; niveau 1 : mode simple utilisateur, à utiliser en cas de plantage ; niveau 2 : mode multi-utilisateur ; niveau 3 : mode console, les service sont lancés (hors services relatifs au mode graphique) ; niveau 4 ou 5, selon les distributions : mode graphique, le serveur X et les services dont ils dépend sont lancés ; niveau 6 : redémarrage de la machine. On peut ainsi choisir au boot à quel niveau on souhaite démarrer la machine. Sur un serveur ainsi, on demarrera en niveau 3, pour un poste utilisateur en 4/5. Le niveau par défaut est défini dans /etc/inittab. Il est également possible de changer de niveau en cours d execution en utilisant la commande init <runlevel> Services Pour qu un système Linux fonctionne, il a besoin de demons lancés dès le démarrage (réseau, serveurs, ports usb...). Ces demons sont localisés dans le repertoire /etc/init.d. Il s agit de scripts shell controlant le démarrage

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 14 et l arret de ces services. La commande usuelle pour lancer un service est /etc/init.d/service start. Demarrage des services Bien entendu, il n est pas nécessaire de lancer ces services à la main, et chacun d entre eux peut être lancé au démarrage ou à l arrêt du systeme. Ainsi le repertoire /etc/ comprend des repertoires rcx.d ou X varie de 0 à 6, et chacun de ses répertoires contient les services qui doivent être lancés pour le niveau d execution X. Voici un exemple de services au niveau 2 : alex@zebulon:/etc/rc2.d$ ls -l total 0 lrwxrwxrwx 1 root root 18 2003-01-31 06:50 S10sysklogd ->../init.d/sysklogd lrwxrwxrwx 1 root root 15 2003-01-31 06:50 S11klogd ->../init.d/klogd lrwxrwxrwx 1 root root 13 2003-01-31 06:50 S14ppp ->../init.d/ppp lrwxrwxrwx 1 root root 14 2003-01-31 06:50 S20exim ->../init.d/exim lrwxrwxrwx 1 root root 15 2003-01-31 06:50 S20inetd ->../init.d/inetd lrwxrwxrwx 1 root root 15 2003-02-10 01:36 S20mysql ->../init.d/mysql lrwxrwxrwx 1 root root 13 2003-02-04 08:32 S20ssh ->../init.d/ssh lrwxrwxrwx 1 root root 13 2003-01-31 08:20 S20xfs ->../init.d/xfs lrwxrwxrwx 1 root root 15 2003-02-02 23:36 S20xfstt ->../init.d/xfstt lrwxrwxrwx 1 root root 15 2004-02-17 20:04 S21aumix ->../init.d/aumix lrwxrwxrwx 1 root root 13 2003-01-31 06:50 S89atd ->../init.d/atd lrwxrwxrwx 1 root root 14 2003-01-31 06:49 S89cron ->../init.d/cron lrwxrwxrwx 1 root root 16 2003-02-02 22:38 S91apache ->../init.d/apache Comme l on peut le voir, les scripts situés ici ne sont que des liens vers les scripts de demarrage situés dans /etc/init.d Ils sont nommés SXXservice ou KXXservice, XX representant un numero entre 1 et 99 qui permet de définir l ordre relatif de lancement des différents services, S correspondant au démarage des services et X à l arret de ceux-cis. 2.6 Monter des partitions Sous Linux, tout est fichier. Ainsi, si l on souhaite souhaitez utiliser le lecteur disquette, on doit monter celui-ci comme un repertoire de l arbores-

CHAPITRE 2. NOTIONS D ADMINISTRATION GNU/LINUX 15 cence. Les commandes mount et umount La commande mount permet de monter une partition. Sa syntaxe est la suivante : mount péripherique point_de_montage Parmi les options possibles, on peut spécifier le système de fichier à utiliser pour le montage. Supposons que l on souhaite monter une disquette formatée sous un système Dos/Windows, se trouvant sous /dev/fd0. La commande de montage est la suivante : mount -t vfat /dev/fd0 /mnt/floppy Il faut au préalable que le repertoire /mnt/floppy soit crée La commande umount permet de démonter une partition. Il faut cependant que celle ci ne soit plus en cours d utilisation. On peut utiliser indifféremment umount <point de montage> ou umount <péripherique>. Le fichier /etc/fstab Le fichier /etc/fstab permet de gérer les différents points de montage d un système Linux. En voici un exemple : /dev/hda2 / ext2 errors=remount-ro 0 1 /dev/hda1 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto user,noauto 0 0 /dev/cdrom /cdrom iso9660 ro,user,noauto 0 0 Chaque ligne est du type : périphérique point de montage type options flags L avantage d un tel fichier est d une part que tout est monté au démarrage, d autre part, qu il n est plus necessaire de specifier les options ou le point de montage pour monter une partition. Ainsi, avec un fichier /etc/fstab identique à celui présenté ci-dessus, il suffit de faire mount /floppy pour monter une disquette.

Chapitre 3 Fichiers et repertoires 3.1 Se déplacer dans l arborescence Commande pwd La commande pwd retourne le répertoire courant. alex@zebulon:~/cours/poly$ pwd /home/alex/cours/poly Commande cd La commande cd permet de se déplacer dans l arborescence du système de fichier. Utilisée sans argument, elle renvoie vers le répertoire home de l utilisateur qui l execute, tout comme cd. Utilisée avec un nom de répertoire, elle renvoie vers le répertoire en question. cd - renvoie vers le répertoire précédent. A noter que cd.. renvoie vers le répertoire parent. alex@zebulon:~/cours/poly$ pwd /home/alex/cours/poly alex@zebulon:~/cours/poly$ cd.. alex@zebulon:~/cours$ pwd /home/alex/cours alex@zebulon:~/cours$ cd /tmp alex@zebulon:/tmp$ pwd /tmp alex@zebulon:/tmp$ cd - 16

CHAPITRE 3. FICHIERS ET REPERTOIRES 17 /home/alex/cours alex@zebulon:~/cours$ pwd /home/alex/cours alex@zebulon:~/cours$ cd alex@zebulon:~$ pwd /home/alex alex@zebulon:~$ 3.2 Création et suppression de fichiers et répertoires Création de fichiers La commande touch <fichier> permet de créer un fichier vide. Il est également possible de créer un fichier par l intermédiaire de la commande cat (nous y reviendrons dans le chapitre suivant) ou avec un éditeur de texte du type vim. Suppression de fichiers La suppression d un fichier se fait par la commande rm <fichier>. La commande rm -r <repertoire> permet de supprimer récursivement le contenu d un répertoire. Différentes options utiles de cette commande rm sont : -r : suppression récursive ; -f : force la suppression ; -i : demande confirmation pour chaque fichier ; -v : affiche le déroulement de la suppression. Création et suppression de répertoires La création d un répertoire se fait par l intermédiaire de la commande mkdir <repertoire>, et la suppression par rmdir <repertoire>. Il faut dependant que le repertoire soit vide. Dans le cas contraire, la commande rm -r <repertoire> est donc plus appropriée. 3.3 Copie de fichiers et répertoires Copie La commande cp <fichier source> <fichier destination> permet de copier le fichier fichier source vers fichier destination. Il est également

CHAPITRE 3. FICHIERS ET REPERTOIRES 18 possible de copier un ou plusieurs fichiers vers un repertoire donné, en utilisant cp <fichier1>... <fichiern> <repertoire>. Pour copier un répertoire, il faut utiliser l option -r (récursivité) de la commande cp : cp -r <repertoirer source> <repertoire destination. Renommage La commande mv <source> <destination> permet de renommer aussi bien un fichier qu un répertoire. alex@zebulon:~/temp$ ls test.c alex@zebulon:~/temp$ mv test.c fic.c alex@zebulon:~/temp$ ls fic.c 3.4 La commande ls Utilisation Utilisée dans options, la commande ls permet de lister le contenu du répertoire courant, hormis les fichiers et répertoires cachés (ceux débutant par un.). Pour lister le contenu d un répertoire donnée, son utilisation est ls <repertoire>. Cette commande dispose de diverses options, dont les plus utilisées sont : -a : affiche également les fichiers cachés ; -l : affiche des informations supplémentaires sur les fichiers (voir paragraphe ci-dessous) ; -i : affiche les numéros d i-node (utile pour vérifier les liens) ; -s : affiche la taille en Ko de chaque fichier. Il est également possible d utiliser la commande ls sur un fichier et non pas sur un répertoire. Commande ls -l Comme indiqué ci-dessus, l option -l permet d afficher des infomations supplémenaires sur les fichiers. Voici un exemple de sortie de la commande ls -l.

CHAPITRE 3. FICHIERS ET REPERTOIRES 19 alex@zebulon:~/cours/poly$ ls -l total 392 -rw-r--r-- 1 alex alex 1169 2004-04-21 11:58 admin.aux -rw-r--r-- 1 alex alex 18710 2004-04-21 11:58 admin.tex -rw-r--r-- 1 alex alex 820 2004-04-21 11:58 bash.aux -rw-r--r-- 1 alex alex 111 2004-03-14 18:27 bash.tex drwxr-xr-x 3 alex alex 4096 2004-02-14 23:43 imgs Chaque ligne s interprète de la facon suivante : 1er caractère (d ou -) : indique si le fichier est un répertoire ; 9 caractères suivants : droits du fichier (voir ci-dessous) ; 2nd champ : nombre de liens sur le fichier ; 3ème champ : propriétaire du fichier ; 4ème champ : groupe du fichier ; 5ème champ : taille en octets ; 6ème et 7émé champs : date de dernière modification ; 8ème champ : nom du fichier. Droits d accès Concernant les droits sur les fichiers (1er champ, 2nd au 10ème caractère), ceux-cis sont répartis de la façon suivante : Les 3 premiers caractères correspondent aux droits du propriétaire ; les 3 suivants aux droits du groupe ; les 3 suivants aux droits du reste des utilisateurs du système ; r correspond à un accès en lecture ; w correspond à un accès en écriture ; x correspond à un accès en execution. Ainsi, dans l exemple ci-dessus, le fichier admin.tex est disponible en lecture/ecriture pour son propriétaire, et en lecture seule pour le groupe auquel il appartient et également pour l ensemble des utilisateurs du système. 3.5 Modification droits d accès avec chmod Commande chmod Sous Unix, et donc sous GNU/Linux, chaque fichier ou repertoire possède donc un système de droits, comme définis ci dessus (rwx).

CHAPITRE 3. FICHIERS ET REPERTOIRES 20 La commande chmod permet de modifier les droits d accès d un ou plusieurs fichiers passés en argument. Elle peut s utiliser de deux façons. Représentation symbolique La première consiste à utiliser la représentation symbolique des droits d accès. Celle-ci est définie en 3 parties, les différents droits étant séparés par des,. Les droits d accès à modifier : propriétaire (u pouruser), groupe (g), ou reste des utilisateurs du système (o pour other) ; Le type de modifications à apporter : ajout (+) ou suppression (-) ; Les modifications à apporter : lecture (r), ecriture (w) ou execution (x). Ainsi, pour autoriser l accès en lecture/écriture pour le propriétaire et en lecture pour le groupe et le reste du système à un fichier file.c, la commande chmod s utilise de la façon suivante : alex@zebulon:~$ chmod u+rx,go+r fic.c alex@zebulon:~$ ls -l fic.c -rwxr--r-- 1 alex alex 1121 2004-04-22 13:01 fic.c Représentation octale La seconde façon d utiliser chmod est d utiliser la représentation octale des droits d accès. Pour chacun des droits à modifier, on affecte les valeurs suivantes : 4 correspond à r ; 2 correspond à w ; 1 correspond à x. Pour chaque droit, on ajoute à convenance ces 3 chiffres pour former le chiffre correspondant à la modification souhaitée (ex : 7 pour rwx). Enfin on combine ces 3 chiffres pour former un nombre à 3 chiffres qui correspond aux nouveaux droits du fichier. Si l on reprend l exemple suivant, pour autoriser l accès en lecture/écriture pour le propriétaire et en lecture pour le groupe et le reste du système à un fichier file.c, la commande chmod s utilise de la façon suivante avec la représentation octale des droits :

CHAPITRE 3. FICHIERS ET REPERTOIRES 21 alex@zebulon:~$ chmod 544 fic.c alex@zebulon:~$ ls -l fic.c -r-xr--r-- 1 alex alex 1121 2004-04-22 13:01 fic.c Commande umask Afin de définir les droits d accès à appliquer par défaut, on peut utiliser la commande umask. Celle-ci se base sur la représentation octale vu précédemment. Il s agit de définir un masque qui sera retranché au masque maximal lors de la création de fichiers ou de répertoires. Pour les fichiers, le masque maximal est de 666. Ainsi, pour que tous les fichiers crées le soient avec les droits définis en octal par le code 644 (soit rw-r--r--), il faut appliquer le masque 022 : umask 022. En ce qui concerne les répertoires, le masque maximal est de 777.