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)
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.
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,
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
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
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.
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)
Modification d'un groupe
-n => change le nom
Suppression d'un groupe (même remarque que pour userdel)
Modifier ou attribuer un mdp (saisie du mdp de manière interactive)
- l => verrouille le mdp uniquement valable pour root
Comme pour passwd pour les groupes
Commandes moins importantes pour 101
Permet d'utiliser /etc/shadow et de cacher les mdp
Retour à un système de mdp standard avec /etc/passwd
idem à pwconv mais pour les groupes
idem à pwconv mais pour les groupes
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
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.
/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
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
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.
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)
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.
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.
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
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.
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
Tous les fichiers sont copiés => peut s'avérer long sur les gros disques.
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.
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.
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
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.
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
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) |
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)
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.
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
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 |
:yy |
copie la ligne courante dans le buffer . |
:p |
colle le contenu du buffer |
:10,20t 100 |
copie les lignes de |
|
|
:r nom_du_fichier |
insérer un fichier (curseur) |
:10,20m 100 déplace les lignes de
:100,$m 50 déplace les lignes 100 jusqu'a la fin du fichier vers la 50 eme ligne.
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
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
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>
où <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