Accueil

 

Administration Linux

 

 

 

 

 

 

 

1.   Gestion des utilisateurs et des groupes

Les systèmes multi-utilisateurs comportent la notion de propriétaire d'objets (fichiers, processus). Création d'un compte => ajout d'une entité dans le fichier /etc/passwd (hébergeait autrefois les mdp d'ou son nom) x => indique que le mdp n'y figure pas

Maintenant la plupart des systèmes stockent les mdp dans /etc/shadow (plus sécurisé car lisible uniquement par root)

 

1.1.  Structure du fichier /etc/passwd

C'est désormais le fichier /etc/shadow qui est utilisé par les adminstrateurs car plus sur

User ID

root 0 / par convention uid de 0 à 99 réservées aux utilisations administratives

 

Group ID Chaque utilisateur est affilié à un groupe ou GID. Cela constitue un moyen de partager des fichiers à travers des groupes communs. le fichier /etc/group contient les noms des groupes existants avec leurs utilisateurs associés. Le GID de /etc/passwd est le groupe par défaut de l'utilisateur, cependant un utilisateur peut être affilié à plusieurs groupes.

 

User name

Comporte en général des commentaires (peut contenir des espaces)

 

Home dir

shell par défaut de l'utilisateur (en général /bin/bash), ça peut être aussi un non shell comme /bin/false (petit programme qui envoi un message d'erreur et se ferme) permettant d'interdire l'accès à un shell pour un compte donné. Souvent utilisé dans le cas ou un service doit être propriétaire des fichiers, mais ne doit pas (pour des raisons de sécurité) être autorisé à se loger sur le système. Les objets appartiennent aussi à un groupe. Le fichier /etc/group contient les noms des groupes existants avec leurs utilisateurs associés.

1.2.  Structure du fichier /etc/group

nom de groupe - mdp groupe (en général x => pas de mdp) - gid - liste des membres

Comme pour les utilisateurs les groupes peuvent avoir un mdp (utile pour autoriser l'accès à des fichiers à un compte non membre. Cependant jamais utilisé car il suffit d'ajouter ce compte à la liste des membres du groupe ).

Si un mdp existe il est stocké dans /etc/gshadow

Suivant les distributions l'affiliation des nouveaux utilisateurs à un groupe est différente. Par exemple pour suse chaque new user est affilé au groupe users, par contre sur redhat un groupe du nom de l'utilisateur est crée => plus sécurisé car ses fichiers seront inaccessibles aux autres,

1.3.  Commandes de gestion des utilisateurs et groupes

1.3.1.1.useradd

Création d'un nouveau compte.

 

-c

commentaires en général le nom de l'utilisateur du compte

 

-s

utilise le shell spécifié

 

-d

pour utiliser /home/nom_util comme home directory

 

-D

liste (éventuellement changement) valeur par défaut du système

 

-m

crée et rempli le home dir

 

 

exemples

useradd -mc "frank maradin commentaire" -s /bin/bash fmar

 

1.3.1.2.usermod

Modification d'un compte, les options de useradd peuvent être utilisées.

- L

verrouille le mdp =>le compte est désactivé

 

-U

déverrouille le mdp=>  compte réactivé

 

Ex

 usermod -c "frank le roi de la jungle" fmar

=> change les commentaires

 

1.3.1.3.userdel

Destruction d' un compte. La suppression d'un compte peut entraîner des problèmes avec les fichiers que ce compte possède dans d'autres répertoire. Les administrateurs préfèrent donc désactiver les comptes plutôt que les détruire.

 -r          => le home dir de l'utilisateur est détruit aussi de manière récursive.

1.3.1.4.groupadd

Création d'un groupe. Si un mdp est nécessaire (voir plus haut fichier /etc/group) il faut utiliser gpasswd pour le définir (après création du groupe)

1.3.1.5.groupmod

Modification d'un groupe

 -n          => change le nom

1.3.1.6.groupdel

Suppression d'un groupe (même remarque que pour userdel)

1.3.1.7.passwd

Modifier ou attribuer un mdp (saisie du mdp de manière interactive)

 - l          => verrouille le mdp uniquement valable pour root

 

1.3.1.8.gpasswd

Comme pour passwd pour les groupes

Commandes moins importantes pour 101

1.3.1.9.pwconv

Permet d'utiliser /etc/shadow et de cacher les mdp

1.3.1.10.       pwunconv

Retour à un système de mdp standard avec /etc/passwd

1.3.1.11.       Grpconv

 idem à pwconv mais pour les groupes

1.3.1.12.       grpunconv

 idem à pwconv mais pour les groupes

1.3.1.13.       chage

Modification de la date d'expiration d'un compte, du mdp.

 -l        => Les utilisateurs peuvent s'en servir sur leur propre compte

 -E       => date d'expiration du compte MM/DD/YY ou YYYY

 

ex chage -E 01/01/2002 frank chage -l frank

(affiche les propriétés du mdp à vérifier

2.   Personnaliser l'environnement utilisateur

La création d'un nouveau compte utilise les fichiers de configuration standard des nouveaux utilisateurs.

variables d'environnement

fichiers de configuration dans /home/nom_util

La quantité de ces fichiers peut varier (choix de l'administrateur) en général ils sont conçus de manière à fournir un environnement adapté au nouvel utilisateur.

2.1.  Scripts de démarrage

 

/etc/profile

ð       fichier exécuté une fois au login. Configure bash pour tous les utilisateurs (utilisation spécifique à bash ceux qui utilisent un autre shell ne sont pas concernés). Détermine les variables d'environnement.

 

/etc/bashrc

ð       exécuté à chaque nouveau shell lancé (s'applique donc à tous les shells). les fonctions et alias sont exécutés dans ce fichier ce qui permet de concerner tous les shells.

 

 

/home/dir

ð       En général /home/nom_de_compte mais peut être modifié Ce répertoire contient les fichiers de démarrage : du shell utilisateurs, du bureau, d'une application X windows.

 

/etc/skel

ð       Contient tous les fichiers qu'un nouveau répertoire utilisateur devra contenir. Quand un nouvel utilisateur est crée tout le contenu de /etc/skel est copié (récursivement) dans le /home/dir et l'utilisateur devient propriétaire de ces fichiers. De cette manière il peut par la suite modifier son environnement. C'est donc l'administrateur qui détermine et modifie le fichier /etc/skel en fonction des besoins.

 

 

Ex contenu

.Xdefault => un fichier de démarrage pour apps X .bash_logout .bash_profile => trois fichiers de configuration pour le shell .bashrc kde .kderc => un répertoire et un fichier de conf pour kde desktop => un répertoire définissant le bureau de l'utilisateur

 

3.   Logs système - utilisation et configuration

Syslog est le démon qui affiche et enregistre les messages décrivant les évènements du système. /etc/syslog.conf  fichier de configuration indique ce qui doit être loggé et où.

 

facility.level action

3.1.1.1.facility

Représente le créateur du message cad le kernel ou un processus. auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, syslog, usr ou encore local0 ==> à local7 (peuvent être assignés au choix) Contrôle de la destination d'un message basée sur leur origine.

3.1.1.2.level

niveau de priorité (dans l'ordre croissant) debug, info, notice, warning, err, crit , aler, emer ( + niveau spécial none => pour exclure des niveaux voir exemple de syslog.conf + bas)

3.1.1.3.action

Représente la destination du message correspondant (mal nommé) à un message du selector donné. Peut être un fichier (full path) un nom d'hote (précédé de @)une liste d'utilisateurs (séparés par des virgules) ou un astérisque (pour tous les utilisateurs loggés)

exemple

 

local5.* /var/log/local5

 => nouveau fichier de log pour un nouveau script (comment le script est il associé à local5 ??)

 

Utilisation du logger (pour créer des logs)??

ex logger -p local5.info "script terminé normalement"

ð       normalement ce message devrait être placé dans /var/log/local5 avec horodatage + nom de l'hote + nom d'expéditeur.

 

exemple de fichier syslog.conf

 

*.info ; mail.none;authpriv.none /var/log/messages

 

ð       tous les messages système seront envoyés vers /var/log/messages (destination par défaut) sauf pour les messages mail et authpriv. Le niveau info étant bas => tous les messages sont loggés sauf les debug. En fonction de la charge du serveur ce choix peut entraîner une surcharge (gros fichiers de log). Il peut donc s'avérer nécessaire d'élever la priorité afin de logger moins de messages.

 

 

3.2.  Rotation des logs

Les distributions installent une configuration par défaut de syslog. Afin d'empêcher une croissance critique des fichiers de log on utilise cron. Souvent 1/jour pour créer un nouveau fichier de log (les anciens étant renommés avec un suffixe numérique ex msg de la veille dans /var/log/messages devient messages.1. Un nombre déterminé de fichiers est conservé. Lorsqu'il est atteint les plus vieux fichiers sont détruits. L'utilitaire de rotation est logrotate

fichier de configuration /etc/logrotate.conf level 1 exige d'être familiarisé avec logrotate mais pas une connaissance complète chap très court.

3.3.  Examiner les fichiers de log

Fichiers texte => lecture par less, grep ou tail

 

Date - hote d'origine - expéditeur ex kernel - message

 

tail -f /var/log/messages

ð       temps réel 10 derniers messages

 

grep '[Mm]ouse' /var/log/messages

ð       tous les msg au sujet de mouse ou Mouse

 

 

grep 'sendmail:' /var/log/messages *

ð       permet de chercher aussi dans les fichiers de la rotation. En cas de problème il peut être utile de changer le niveau de log afin d'obtenir plus de précisions. Ex passer en level debug => + de messages

 

 

 

3.4.     La gestion des logs

sysklogd

Paquage contenant deux démons, syslogd et klogd (chargé del l'aspect noyau)

 

klogd  Archive les messages en fonction de leur priorité. vont de 7 à 0 (entre 3 et 1 très important – 0 pour les situations critiques) Les messages de klogd sont envoyés à syslogd après traitement.

 

syslogd  Démon qui enregistre diverses activités du système. En général lancé lors de l'initialisation du système. Stockage des logs dans /var/log/ messages infos et messages erreurs programmes système et principaux démons secure authentification et messages erreurs maillog messagerie cron spooler uucp et news.

Ces fichiers sont par défaut autorisés en lecture, il est donc préférable de passer en 600. Son fichier de configuration /etc/syslog.conf permet de spécifier l'endroit ou les informations doivent apparaître.

 

Format du fichier dispositif.priorité action mail.debug /var/adm/maillog

 

Dispositif peut désigner mail, kernel, user (apps utilisateurs) ou auth (programmes d'authentification, login et su) un astérisque englobe tous les dispositifs Niveau debug (info de debogage) info, notice, warning, err, crit, alert, emerg. action en général un nom de fichier, mais aussi tty (/dev/console), liste d'utilisateurs séparés par des virgules, machine distante prefixée par @ ou * pour envoyer un message à tous les utilisateurs loggés.

 

Relancer le démon pour prise en compte des modifications du fichier de configuration. killall –HUP syslogd Les fichiers de trace peuvent devenir encombrants, dans ce cas les vider avec la commande rm ils seront normalement recrées au démarrage. La gestion des logs est normalement assurée par le programme logrotate.

 

4.   Stratégie de sauvegarde

 

La sauvegarde s'avère indispensable pour assurer une protection contre

 

ð       Les pannes de disques

ð       Effacement accidentel ou corruption de fichiers

ð       Désastre ( incendie, inondations, vandalisme)

 

 

 

 

et pour

ð       Conserver un historique des données

ð       Redondance de données off-site

 

 

4.1.  Différents types de sauvegarde

4.1.1.                     Sauvegarde complète ou globale

Tous les fichiers sont copiés => peut s'avérer long sur les gros disques.

4.1.2.                     Sauvegarde différentielle

Seuls les fichiers modifiés ou crées depuis la dernière complète sont sauvegardés. Il est donc possible de réutiliser le même média tous les jours pour une sauv diff quotidienne.

4.1.3.                     Sauvegarde incrémentale

Seuls les fichiers modifiés ou crées depuis la dernière sauvegarde (différentielle, complète ou incrémentale)

En général les stratégies de sauvegarde comprennent une globale associée à une série de différentielles ou incrémentales (mais pas les deux)

 

On a donc deux schémas possibles

1.      Une globale hebdomadaire et 6 différentielles .En cas de restauration seules la globale et la dernière différentielle seront nécessaires.

=> moins de médias nécessaires (réutilisation de la même bande possible) mais moins rapide (plus de données à sauvegarder).

2.      Une globale hebdomadaire et 6 incrémentales quotidiennes. Pour restaurer, la globale et toutes les incrémentales seront nécessaires. => Plus rapide (moins de données à sauvegarder) mais plus de médias nécessaires (changement de bande obligatoire tous le jours)

 

Pour les grandes organisations nécessitant un historique des données, la rotation des différentielles ou incrémentales se fait sur plusieurs semaines (avant d'être réutilisées). Les sauvegardes globale peuvent être conservées pour au moins un an voire de manière permanente. Au minimum une globale par mois.

4.2.  Vérification des sauvegardes

Afin d'être sur de pouvoir restaurer les données si nécessaire une vérification de la sauvegarde est indispensable.

 

Différentes possibilités

 

ð       Comparaison des fichiers après sauv

ð       Une restauration d'un groupe de fichier de manière périodique

ð       Un audit aléatoire et régulier des médias

 

4.2.1.1.Rembobinage

 

Le device /dev/st0 représente la 1ér lecteur de bandes scsi. En utilisant des lecteurs de bande comme celui ci-dessus le pilote du périphérique envoi automatiquement une commande rewind après la sauvegarde. Afin d'empêcher le rembobinage il est possible d'utiliser un "nonrewinding device" :

ex file /dev/nst0 avec n pour non rewinding

Utilisation de tar et mt

 

"tape archive" utilisé pour lire de manière récursive fichiers et répertoires puis les écrire sur une bande ou dans un fichier.

En plus des données de nombreuses informations sont enregistrées (heure de modifications, propriétaire, mode etc.). Durant la restauration à partir d'une bande avec plusieurs archives, il est parfois nécessaire de positionner la bande sur l'archive qui contient le fichier recherché. Cela se fait grâce à mt (magnétique tape) qui utilise un jeux d'instructions pour diriger le lecteur de bandes.

 

4.3.  Tar

Archive ou restaure de manière récursive fichiers et répertoires en incluant les propriétés des fichiers. Exige un mode d'exécution.

 

- c

création archive

 

-t

liste le contenu d'une archive

 

-x

extraire une archive

 

-f

pour spécifier le fichier à archiver ou à extraire (cela comprend aussi le média qui est vu comme un fichier (/dev/st0)

 

-N

date => n'archive que les fichiers + récents que la date spécifiée => peut servir à la création d'une sauvegarde différentielle.

 

- v

mode verbeux

 

-w

mode interactif

 

 -z

permet la compression Les données sont filtrées avec gzip avant d'être archivées. => création d'une archive avec extension .tar.gz (l'option z devra être réutilisée pour extraire l'archive sinon tar ne reconnaîtra pas le fichier).

 

 

 

-V

"label" => ajout d'une étiquette à l'archive. (ne pas oublier les guillemets pour éviter l'interprétation comme un nom d'archive)

 

 

 

Exemples

 

tar cvf /dev/sto /etc

Créer une archive de /etc sur lecteur de bande scsi 0 de manière détaillée =>  (l'archive sera nommée etc : / suppr pour éviter d'écraser /etc en cas de restauration)

tar -tf /dev/st0

Lister le contenu d'une archive =>
 
tar xvf /dev/st0

Extraire le contenu complet d'une archive sur lecteur de bandes scsi 0 =>
 

idem mais uniquement pour /etc/hosts =>

tar xvf /dev/sto etc/hosts (le slash est supprimé car c'est ainsi que le fichier a été nommé dans l'archive.

Créer une archive compressée du répertoire root en lui donnant une étiquette =>

 tar cvzf /dev/st0 -V "dossier root" - /root

4.4.  mt

Syntaxe mt [-h] [-f device-file] opération [count] Permet de contrôler un lecteur de bandes

Fuo -h => imprimer informations y compris mon opération et quitter ? -f => device file si ouvrir de celui indiqué par défaut dans /usr/include/sys/msti0-h il s'agit en général de /dve/tape

 

Opérations usuelles fsf [count] => déplacement entre les archives (sauts] ; rewind ; offline => éjection de la bande (permet d'éviter une réecriture sur la sauvegarde) ; status => informations sur la bande utilisée ; tell => indique la position de la bande en blocs (pour certains lecteurs scsi)

 

Exemples

 

 

 

déplacement sur le lecteur de bande /dev/st0 sur la 3ième archive mt -f /dev/nst0 fsf 2 (2sauts ) utilisation de nst0 impérative sinon rembobinage après le saut

 

rembobiner la bande mt -f /dev/st0 rewind

 

éjecter la bande mt -f /dev/st0 offline

 

Déterminer quel périphérique est représenté par /dev/tape ls -l /dev/tape (indique le sur quel fichier pointe le lien)

 

4.5.  Opérations de sauvegarde

L'utilisation de tar et cron pouvant s'avérer laborieuse, les sauvegardes sont en général programmées avec des scripts exécutés par CRON. L'admin a alors la charge du changement de média et de vérifier les logs.

Que faut il sauvegarder ?

 

/etc/ régulièrement une fois que le système est correctement configuré

/home contient généralement les fichiers utilisateurs

 /var/spool/mail s'il s'agit d'un serveur de mail

 /var/spool/at -cron localisation des fichiers at et crontab utilisateurs

 

Conseils : entretien du lecteur, utilisation régulière de bandes nettoyantes (1 x par semaine), vérification date expiration des bandes et les changer régulièrement (1x par an)

4.6.  Vérification des archives

option -t pour lister Si plusieurs archives sur même bande il faut alors utiliser le non rewinding device /dev/nst0 (permet de lister de manière séquentielle)

 

Cela permet de vérifier que est l'archive est visible, il faut ensuite vérifier les données en les comparant aux originales.

 

options -verify -compare (peuvent poser problèmes si les fichiers changent constamment)

On peut par exemple choisir une liste de fichiers au hasard, lee restaurer dans un rep temp et les comparer manuellement aux données originales.

4.7.  Restauration des données

Dangereux car peut écraser des fichiers existants. De ce fait on restaure en général dans un endroit différent

ex /tmp, puis on déplace ensuite les fichiers.

Exemples

 

restaurer le répertoire /etc/host sauvegardé plus haut

 cd /tmp tar xzf /dev/st0 etc/hosts

 

(le slash devant etc a été supprimé par protection durant la création de l'archive)

restaurer le fichier .bash_profile de jdean de la 2ième archive de la bande cd /tmp

mt -f /dev/nst0 fsf 1 tar xzf /dev/st0 /home/jdean/.bash_profile

 

 

 

5.   Utiliser VI

 

Ouvrir plutôt un xterm en couleur pour avoir le pavé numérique

 

Créer un fichier : vi <nom de fichier>

 

passer en mode insertion i

repasser en mode commandes ESC

annuler la dernière commande U (undo)

afficher les numéros de ligne :se nu

 

Enregistrer le fichier (par défaut dans le répertoire root)

Ecrire fichier sur le disque w

écrire sous un nom différent w <nom_fich>

sauver et quitter (aussi zz) wq

quitter sans sauver. q!

 

 

Rechercher / remplacer

 

: %s/ancienne_chaine/nouvelle_chaine/g

Rechercher/remplacer - S pour search et g pour global

/"chaîne" /

Rechercher une chaîne

 

 

copier-coller

 

:10,20y

met dans le buffer les 10 lignes de 10 a 20.

:yy

copie la ligne courante dans le buffer .

:p

colle le contenu du buffer

:10,20t 100

copie les lignes de 10 a 20 a la 100 eme ligne

 

 

:r nom_du_fichier

insérer un fichier (curseur)

 

 

 

:10,20m 100 déplace les lignes de 10 a 20 a la 100 eme ligne . <

:100,$m 50 déplace les lignes 100 jusqu'a la fin du fichier vers la 50 eme ligne.

 

6.   Cron / crontab

 

 

Ordonnancement de travaux

Planificateur de taches, Le démon crond lit les informations programmées dans /var/spool/cron/crontab/"nom_util puis les exécute

 

La commande est crontab

Les taches système surveillées sont stockées dans /etc/crontab

Appeler crontab avec l'option e (edit)

 

Crontab –e

éditer une nouvelle tache

crontab "nom_fichier" activer le fichier

crontab -l afficher les cron courant

crontab -r désactiver les cron courant

 

Chaque entrée de la table correspond à une tâche à exécuter

 

Syntaxe

mm hh jjj MMM JJJ tâche > log

 

jjj le numéro du jour du mois

JJJ le numéro de jour de la semaine (0 représente le dimanche, 1 représente le lundi…)

log par défaut cron envoie automatiquement un mail de confirmation. Pour l'éviter il faut spécifier

/dev/null

 

Les notations pour chaque unité de temps (minute/heure/...)

· *: a chaque unité de temps

· 2-5: les unités de temps (2,3,4,5)

· */3: toutes les 3 unités de temps (1,4,7,...)

· 5,8: les unités de temps 5 et 8

 

exemples

· Tous les lundis à 22h28:

28 22 * * 1 df >>/tmp/log_df.txt

· Tous les jours à 23h30:

30 23 * * * df >>/tmp/log_df.txt

 

 

7.   Gestion des impressions

 

LPD

Utilitaire d'impression

Démon démarré au boot. Un process lpd écoute en permanence, à chaque fois qu'une nouvelle tache d'impression est demandée une nouvelle instance du process est lancée.

Stocke les travaux  d'impressio dans le répertoire /var/spool/lpd (spool) et leur attribue un numéro de job.

 

 

/etc/printcap

contient les informations de configuration des imprimantes. Est utilisé par lpd lors du spooling.

 

Lpr

Programme soumettant les travaux dans la file d'impression

 

-Pnom spécifie le nom d'une imprimante

 

exemples

lpr /etc/lilo.conf => imprimer le fichier lilo

 

man –t 5 printacp | lpr   => impression d'une page de MAN

 

 

Lpq

Query  Affiche le statut des travaux d'impression en cours

Option –l pour format long

 

Lprm

Rm Supprime des travaux d'impression

Exemple lprm –

 

 

Lpc

Permet de contrôler les travaux.
Mode interactif ou ligne de commandes

Ex

Lpc status  => donne des informations sur les travaux 

 

Lpc topq lp 207  => fait passer le job 207 en priorité dans la file d'impression

 

Lpc disable lp  => termine les travaux en cours et désactive le spoll => les nouveaux travaux sont refusés (root peut continuer à imprimer)

 

Lpd enable lp => réactive => accepte les nouveaux travaux

 

Lpc stop lp  => les impressions sont arrêtées mais le spool accepte de nouveaux travaux

Lpc start lp  => reprise des impressions

Lpc abort lp  => arret de tous les travaux d'impression

 

 

Installation des imprimantes

 

 

 

8.   Utilisation des RPM

 

Automatise l'installation de logiciels

 

Contiennent des binaires.

Format    nom_package-version-release-architecture

 

Commandes

 

 

Rpm -i

installation

Rpm -U

upgrade

-e

Erase désinstallation

--force

Permet le remplacement de package existant

--nodpes

Sans les dépendances

--v

verbose

--h

Progress indicator #

query

Rpm -a

all pour connaitre tous les packages installés sur le système

 

 

Les packages SRPM

Contiennent les sources d'un logiciel prêtes à être recompilées et transformées en paquetage rpm.
Peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes

 

Pour reconstruire un paquetage rpm à partir d'un srpm
# rpmbuild --rebuild paquetage.src.rpm

Le paquetage rpm résultant se trouvera dans /usr/src/RPM/RPMS/<arch><arch> est i386, i586, ppc, etc.

Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :
  # rpmbuild --recompile paquetage.src.rpm

http://lea-linux.org/software/soft_gere/rpm.html