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)
www.ziedbouziri.com
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
www.ziedbouziri.com
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.
www.ziedbouziri.com
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
www.ziedbouziri.com
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.
www.ziedbouziri.com
5
Création de compte
useradd -m -g auf -c "Mohamed Salah" -s /bin/tcsh msalah # passwd msalah
/etc/default/useradd (SUSE) ou /etc/adduser.conf (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 -D : Paramètres par défaut de la commande useradd
useradd fabrique le répertoire personnel et y recopie le contenu du
répertoire modèle /etc/skel.
www.ziedbouziri.com
6
Gestion des groupes
groupadd auf : créer un nouveau groupe auf
groupdel auf : supprimer le groupe
groupmod : modifier les informations d'un groupe
Publicité
– groupmod -n AUF auf
www.ziedbouziri.com
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 passwd -l usermod -L
Débloquer passwd -u usermod -U
www.ziedbouziri.com
8
/etc/login.defs
Les caractéristiques par défaut du mot de passe sont définis à partir du fichier
/etc/login.defs, sauvegardés dans le fichier /etc/shadow
Bagdad:~ # grep -v '^#' /etc/login.defs 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
www.ziedbouziri.com
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
www.ziedbouziri.com
10
chage (suite)
www.ziedbouziri.com
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/at.deny /etc/at.allow /etc/crontab /etc/cron.allow /etc/cron.deny /var/spool/cron/* at atq atrm crontab
www.ziedbouziri.com
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).
www.ziedbouziri.com
13
cron
Tous les utilisateurs peuvent planifier l’exécution de tâches. c'est pourquoi chacun dispose de sa
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 [email protected] 00 * * * * /usr/X11R6/bin/xclock -display :0.0
Supprimer la table cron
crontab -u salah -r # crontab -u salah -l
no crontab for salah
www.ziedbouziri.com
Publicité
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.
www.ziedbouziri.com
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/get.pl # 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
www.ziedbouziri.com
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
www.ziedbouziri.com
17
´ ´ Sécurité : Restreindre l'accès à cron et atd
cron.allow, cron.deny
at.allow, at.deny
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 cron.allow et cron.deny n'existent pas, alors tous les usagers peuvent
utiliser le service.
atd : si les deux fichiers at.allow et at.deny n'existent pas, seul root peut utiliser le service.
atd :un fichier at.deny vide, donne l'accès à atd à tous les usagers. (configuration par défaut)
www.ziedbouziri.com
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.
www.ziedbouziri.com
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
/etc/localtime
/usr/share/zoneinfo
- /usr/bin/locale
- tzselect
- tzconfig
– Environment variables: LC_*, LC_ALL, LANG
–
–
–
date
UTF-8
ISO-8859
Publicité
– ASCII
- iconv
- Unicode
www.ziedbouziri.com
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=
–
●
www.ziedbouziri.com
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.
www.ziedbouziri.com
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
www.ziedbouziri.com
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
www.ziedbouziri.com
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.
www.ziedbouziri.com
25