Sujet 107 :Tâches d'administration
107.1 Gestion des utilisateurs, des groupes et des fichiers associés (Weight 5)
107.2 Automatisation de tâches d’administration par la planification de lancement de
programmes (Weight 4)
107.3 Localisation et internationalisation. (Weight 3)
[Link] 1
Gestion des utilisateurs, des groupes et des fichiers associés
Description : Les candidats doivent être capables d’ajouter, de détruire, de suspendre
et de modifier des comptes d’utilisateurs.
Termes, fichiers et utilitaires utilisés :
– /etc/passwd, /etc/shadow , /etc/group, /etc/gshadow.
– chage, gpasswd, groupadd, groupdel, groupmod, passwd, useradd, userdel,
usermod
[Link] 2
Base de données des utilisateurs :/etc/passwd
Format : account:passwd:UID:GID:GECOS:directory:shell
– identifiant (ou login), par exemple salah;
– mot de passe : il s'agit d'un mot de passe chiffré e par la fonction a sens unique crypt ou md5. La valeur
spéeciale < x > indique que le mot de passe chiffré est stocké dans /etc/shadow ;
– uid : numéro unique identifiant l'utilisateur ;
– gid : numéro unique du groupe principal de l'utilisateur (Debian crée par défaut un groupe spécifique à
chacun) ;
– GECOS : champ de renseignements qui contient habituellement le nom complet de l'utilisateur ;
– répertoire de connexion, attribué à l'utilisateur pour qu'il y stocke ses fichiers personnels (la variable
d'environnement $HOME y pointe habituellement) ;
– Programme à exécuter après la connexion. Il s'agit généralement d'un interpréteur de commandes
(shell). Si l'on précise /bin/false (programme qui ne fait rien et rend la main immédiatement), l'utilisateur
ne pourra pas se connecter.
[Link] 3
/etc/shadow
Fichier de mots de passe chiffrés.
Format (cf shadow (5))
– Identifiant ou login
– Mot de passe chiffré
– Plusieurs champs de gestion de l'expiration du mot de passe.
Améliorer la sécurité : stocker les mots de passe chiffrés dans /etc/shadow.
– Créer /etc/shadow à partir de /etc/passwd : pwconv
– Stocker les mots de passe dans /etc/passwd : pwunconv
[Link] 4
/etc/group
Base de données des groupes
Un groupe Unix est une entité regroupant plusieurs utilisateurs afin qu'ils puissent
facilement se partager des fichiers à l'aide du système de droits intégré (en jouissant
justement des mêmes droits).
Format (ch group (5) )
– identifant (le nom du groupe) ;
– mot de passe (facultatif)
– gid : numéro unique identifiant le groupe ;
– liste des membres : liste des utilisateurs membres du groupe, séparée par des virgules.
[Link] 5
Création de compte
# useradd -m -g auf -c "Mohamed Salah" -s /bin/tcsh msalah
# passwd msalah
/etc/default/useradd (SUSE) ou /etc/[Link] (debian) offre
quelques paramétrages par défaut au compte créé avec useradd :
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
GROUPS=video,dialout
CREATE_MAIL_SPOOL=no
useradd fabrique le répertoire personnel et y recopie le contenu du
répertoire modèle /etc/skel.
[Link] 6
Gestion des groupes
groupadd auf : créer un nouveau groupe auf
groupdel auf : supprimer le groupe
groupmod : modifier les informations d'un groupe
– groupmod -n AUF auf
[Link] 7
Gérer les comptes
passwd : changer le mot de passe.
chfn (Change Full Name) : intervient sur le champs GECOS
chsh (Change Shell) : permet de changer le shell de login (le choix du shell est limité
à la liste dans /etc/shells)
userdel -r utilisateur : supprimer utilisateur ainsi que le répertoire personnel et les
fichiers de l'utilisateur.
usermod : Modifier un compte
– Changer le groupe primaire : usermod -g users msalah
– Changer les groupes secondaires : usermod -G stagiaire,prof msalah
Bloquer un compte d'un utilisateur : l'empêcher de se connecter à nouveau :
Bloquer Débloquer
passwd -l passwd -u
usermod -L usermod -U
[Link] 8
/etc/[Link]
Les caractéristiques par défaut du mot de passe sont définis à partir du fichier
/etc/[Link], sauvegardés dans le fichier /etc/shadow
Bagdad:~ # grep -v '^#' /etc/[Link]
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
SYSTEM_UID_MIN 100
SYSTEM_UID_MAX 499
UID_MIN 1000
UID_MAX 60000
SYSTEM_GID_MIN 100
SYSTEM_GID_MAX 499
GID_MIN 1000
GID_MAX 60000
La commande chage permet de modifier ces informations contenues dans le fichier
/etc/shadow
[Link] 9
chage
chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E expiredate] [-W warn
days] user
chage -l [user]
-l donne les valeurs actuelles du compte
-E permet de fixer une date d'expiration sous la forme Unix standard (nombre de
jours depuis le 1er janvier 1970) ou sous la forme YYYY/MM/DD
-M permet de changer la valeur du nombre maximal de jours de validité du mot de
passe.
-m permet de changer la valeur du nombre minimal de jours de validité de mot de
passe.
-w permet de changer le nombre de jours d'alerte avant un changement obligatoire
de mot de passe.
-d permet de changer la date de dernier changement de mot de passe sous forme
Unix standard
[Link] 10
chage (suite)
[Link] 11
Automatisation de tâches d’administration
– Description : Les candidats doivent être capables d’utiliser les commandes
"cron" et "anacron" pour lancer des programmes à intervalles réguliers et
d’utiliser la commande "at" pour lancer des programmes à des moments
spécifiques.
– Termes, fichiers et utilitaires utilisés :
• /etc/anacrontab
• /etc/[Link]
• /etc/[Link]
• /etc/crontab
• /etc/[Link]
• /etc/[Link]
• /var/spool/cron/*
• at
• atq
• atrm
• crontab
[Link] 12
Planification synchrone : cron et atd
cron : démon chargé d’exécuter des commandes planifiées et récurrentes (chaque jour,
chaque semaine, etc.) ;
atd : démon qui s’occupe des commandes à exécuter une seule fois à un instant précis,
à un instant précis et futur
De nombreuses tâches sont régulièrement planifiées :
– la rotation des logs;
– mise à jour de la base de données du programme locate;
– les sauvegardes;
– des scripts d'entretien (comme le nettoyage des fichiers temporaires).
[Link] 13
cron
Tous les utilisateurs peuvent planifier l’exécution de tâches. c'est pourquoi chacun dispose de s
propre crontab.
Un utilistaeur peut éditer les commandes à planifier :
– crontab -e
– ses informations sont stockées dans /var/spool/cron/crontabs/<utilisateur>).
Afficher la liste des tâches programmées
crontab -u salah -l
35 * * * * echo "hello" | mail zied@[Link]
00 * * * * /usr/X11R6/bin/xclock -display :0.0
Supprimer la table cron
# crontab -u salah -r
# crontab -u salah -l
no crontab for salah
[Link] 14
Format d'un fichier crontab
Chaque ligne significative d’une crontab décrit une commande planifiée grâce aux six
champs suivants :
– la condition sur les minutes (nombres compris de 0 a 59) ;
– la condition sur les heures (de 0 a 23) ;
– la condition sur le jour du mois (de 1 a 31) ;
– la condition sur le mois (de 1 a 12) ;
– la condition sur le jour de la semaine (de 0 a 7, 0 et 7 correspondant au dimanche ; il est
également possible d’employer les trois premières lettres du nom du jour en anglais comme
Sun, Mon, etc.) ;
– la commande a exécuter (quand toutes les conditions précédentes sont remplies).
La syntaxe a-b décrit l’intervalle de toutes les valeurs comprises entre a et b
La syntaxe a-b/c décrit un intervalle avec un incrément de c (exemple : 0-10/2
correspond a 0,2,4,6,8,10.
[Link] 15
Exemples de crontab
#Format
#min heu jou moi jsem commande
# Télécharge les données tous les soirs à 19:25
25 19 * * * $HOME/bin/[Link]
# Le matin a 8h00, en semaine (lundi à vendredi)
00 08 * * 1-5 $HOME/bin/fait_quelquechose
# Redémarre le proxy IRC après chaque reboot
@reboot /usr/bin/dircproxy
# Au début de chaque heure
00 * * * * $HOME/bin/fait_une_autrechose.pl
[Link] 16
at
La commande at prévoit l’exécution d’une commande à un moment ultérieur.
Exemple 1: Planifier une tâche à 1:23 am
$ at 1:23am
at>lp /usr/sales/reports/*
at> echo “Files printed, Boss!” | mail -s”Job done” boss
at> ^D
Exemple 2 :Exécuter les commandes listées dans le fichier command_list après deux
jours à 9 pm
$ at -f command_list 9pm + 2 days
Lister les commandes actuellement planifiés : atq ou at -l
$ at -l
12 2009-05-28 18:15 a salah
Annuler une commande planifiée : atrm , at -r ou at -d
$ atrm 12
[Link] 17
´ ´
Sécurité : Restreindre l'accès à cron et atd
[Link], [Link]
[Link], [Link]
Si le fichier « allow » existe : SEULS les usagers listés dans ce fichiers sont autorisés à utiliser le
service.
Si le fichier « allow » n'existe pas, mais le fichier « deny » existe, SEULS les usagers non listés
dans le fichier « deny » sont autorisés à utiliser le service.
cron : si les deux fichiers [Link] et [Link] n'existent pas, alors tous les usagers peuvent
utiliser le service.
atd : si les deux fichiers [Link] et [Link] n'existent pas, seul root peut utiliser le service.
atd :un fichier [Link] vide, donne l'accès à atd à tous les usagers. (configuration par défaut)
[Link] 18
Exercices
1. Créer une entré cron qui permet de lancer xclock chaque deux minutes.
2. Utiliser at afin de lancer xclock dans les deux minutes suivantes.
[Link] 19
Localisation et internationalisation
Description : Les candidats doivent savoir Configurer les informations de localisation
ou d'internationalisation liées au système ou aux utilisateurs.
Termes, fichiers et utilitaires utilisés :
– /etc/timezone - /usr/bin/locale
– /etc/localtime - tzselect
– /usr/share/zoneinfo - tzconfig
– Environment variables: LC_*, LC_ALL, LANG
– date - iconv
– UTF-8 - Unicode
– ISO-8859
– ASCII
[Link] 20
I18N et L10N
● Linux est un logiciel internationalisé, c’est-à-dire qu’il peut être adapté aux contextes de
chaque pays. Ce travail d’adaptation est appelé régionalisation ou localisation :
● Des variables d’environnement de localisation
● $ locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL= [Link] 21
Variables d'environnement des locales
LANG indique la locale au niveau global, tout en permettant une personnalisation des LC_*
LC_COLLATE indique la locale utilisée pour les tris et les comparaisons ;
LC_CTYPE indique l'ensemble de caractères à utiliser
LC_MONETARY Définit les unités monétaires et le format des valeurs numériques de type
financière.
LC_NUMERIC donne des informations sur les nombres : la façon dont les chiffres sont séparés
et divisés en groupes, comment est représenté le point décimal, etc. ;
LC_TIME Définit le format des dates et heures ( valeurs AM/PM ou sur 24 heures) ;
LC_MESSAGES indique la langue choisie pour les messages texte des programmes ;
LC_ALL définit la valeur par défaut des variables précédentes : si une LC_ n’est pas
définie, c’est LC_ALL qui est prise en compte.
[Link] 22
Exemple
salah@Bagdad:~> date
jeu mai 28 05:53:34 CET 2009
salah@Bagdad:~> cat /foo/bar
cat: /foo/bar: Aucun fichier ou répertoire de ce type
salah@Bagdad:~> export LC_ALL="en_US"
salah@Bagdad:~> date
Thu May 28 05:54:31 CET 2009
salah@Bagdad:~> cat /foo/bar
cat: /foo/bar: No such file or directory
salah@Bagdad:~> export LC_ALL="it_IT"
salah@Bagdad:~> date
gio mag 28 05:55:17 CET 2009
salah@Bagdad:~> cat /foo/bar
cat: /foo/bar: No such file or directory
[Link] 23
iconv
Modification de l'encodage d'un fichier.
Syntaxe : iconv –f encodage [–t encodage] [fichier]
Exemple : iconv –f iso-8859-1 –t UTF-8 monfichier > monfichier-UTF-8
[Link] 24
Fuseau horaire
Changer temporairement du fuseau horaire
$ date
Thu May 28 06:52:47 CET 2009
$ export TZ='Pacific/Fiji'
$ date
Thu May 28 17:53:10 FJT 2009
tzselect : demande à l'utilisateur des informations à propos de son emplacement
géographique, et fournit sur sa sortie standard la description du fuseau horaire. Cette
sortie est utilisable pour la variable d'environnement TZ.
/etc/localtime : un lien symbolique vers un fichier du répertoire
/usr/share/zoneinfo.
[Link] 25