I Préparation
d'un point de montage pour la sauvegarde des fichiers systèmes.
Pour faire une sauvegarde des fichiers systèmes dans un
répertoire
monté Home/sauve il faut d'abord créer un répertoire
où l'on fera une sauvegarde ponctuelle des fichiers (car on aurait
pû faire un lien des fichiers que l'ont veut sauvegarder directement
vers le répertoire mais si l'on modifie un fichier et que l'on
se trompe à un endroit alors l'erreure se répercutera sur le dossier
de sauvegarde) et l'on montera ce dossier sur le répertoire sauve.
II Etudes des fichiers de groupes et d'utilisateurs.
a)Le fichier des groupes.
1)Présentation
Le fichier où se trouvent les
groupes est situé à l'adresse /etc/group.
Ce fichier contient la liste des utilisateurs appartenant aux
différents groupes. En effet, lorsque de nombreux utilisateurs
peuvent avoir accès au système, ceux-ci sont
fréquemment rassemblés en différents groupes
ayant chacun des droits d'accès diiférents aux
fichiers et aux répertoires.
A chaque fois qu'un utilisateur est créé son propre groupe
portant son nom est alors créé dans ce fichier.
2)Sa structure
Il se compose de différents champs séparés
par ":" :
nom_de_groupe : champ_special : numero_de_groupe
: membres |
Le champ spécial est fréquemment
vide.
Le numéro de groupe est le numéro qui fait
le lien entre les fichiers /etc/group et /etc/passwd
(qui est le fichier spécifique aux utilisateurs.).
3)Exemple
Voici un exemple de fichier /etc/group :
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:
tty:x:5:
disk:x:6:
lp:x:7:
wwwadmin:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:cyrus
news:x:13:news |
Dans cette exemple on voit qu'il y a le groupe root qui
est le similaire du groupe administrateur de windows.Il
permet d'avoir certains droits(mais pas tous) de l'utilisateur
root.
4)Ce qu'il faut savoir sur ce fichier
- Lorsqu'on utilise la commande ls avec l'option -l, le
numéro de groupe est affiché avec le numéro
de l'utilisateur à qui appartient le fichier (ou
le répertoire). Ce numéro unique correspond à un
nom de groupe unique (souvent 8 caratères max.).
- Un même utilisateur peut apparaître dans
plusieurs groupes. Lorsqu'il se connecte au système,
il appartient au groupe spécifié dans le
fichier /etc/passwd (le champ GID). Il peut en changer à l'aide
de la commande newgrp. Des droits d'accès aux fichiers
sont alors définis.
- Les protections du fichier doivent empêcher sa
modification par les utilisateurs non privilégiés
5)Manipulation des groupes
- Pour ajouter un groupe, l'administrateur peut modifier
le fichier /etc/group à l'aide d'un éditeur
de texte. Il peut également utiliser la commande
addgroup ou groupadd (pas toujours présentes). Dans
le premier cas, il aura uniquement la ou les lignes correspondant
aux groupes, à ajouter. Par exemple, la ligne :
- Pour ajouter un utilisateur à un groupe, il suffit
d'éditer le fichier /etc/group et de rajouter ce
nom au bout de la ligne en séparant le nom des membres
par une virgule.
- Pour supprimer un groupe, il suffit d'éditer le
fichier /etc/group et d'effacer la ligne correspondante.
Mais attention, n'oubliez pas de changer dans le fichier
/etc/passwd, les numéros (GID) du groupe supprimé,
si des utilisateurs y appartenaient. Vous devez également
chercher les fichiers et répertoires de ce groupe
pour le changer (sinon, vos fichiers et répertoires
riquent d'être inaccessibles).
b)Le fichier des utilisateurs
1)Présentation
Le fichier où se trouvent les utilisateurs est
situé à l'adresse
/etc/passwd (si l'on ne code pas les mots de passes avec
gshadow).
C'est lui qui contient toutes les informations relatives
aux utilisateurs (login, mots de passe, ...). Seul le superutilisateur
doit pouvoir le modifier.
2)Sa structure
Si on regarde de plus près la composition de ce
fichier, on s'apercoit qu'il respecte le format suivant
:
nom_du_compte
: mot_de_passe : numero_utilisateur : numero_de_groupe
: commentaire
: répertoire
: programme_de_demarrage |
Sept champs sont explicités séparés
par le caractère ":" :
- le nom du compte de l'utilisateur
- le mot de passe de l'utilisateur (codé bien sûr)
- l'entier qui identifie l'utilisateur pour le système d'exploitation
(UID=User ID, identifiant utilisateur)
- l'entier qui identifie le groupe de l'utilisateur (GID=Group ID, identifiant
de groupe)
- le commentaire dans lequel on peut retrouver des informations sur l'utilisateur
ou simplement son nom réel
- le répertoire de connexion qui est celui dans lequel il se trouve
après s'être connecté au système
- la commande est celle exécutée après connexion au système
(c'est fréquemment un interpréteur de commandes)
3)Exemple
Voici un exemple de fichier passwd :
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:daemon:/sbin:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14::/var/lib/uucp/taylor_config:/bin/bash |
Dans cet exemple l'on voit des utilisateurs dont l'utilisateur
root qui permet la gestion et surtout l'administration
du système linux, c'est le "Superutilisateur",il a par
défaut tout les droits.
4)Manipulation de ce fichier
- Il faut savoir que les mots de passe situés dans
ce fichier sont chiffrés. Ca sert donc à rien
de l'éditer et de remplacer le champ mot_de_passe
en tapant directement son mot de passe. Vous n'obtiendriez
uniquement que le blocage du compte.
- Lorsqu'un utilisateur se connecte, le programme login
compare le mot de passe tapé par l'utilisateur (après
l'avoir chiffré) à celui qui est dans le
fichier passwd. Si ils sont différents, la connexion
ne peut se faire.
- Pour interdire l'utilisation, il suffit de remplacer
le mot de passe chiffré par une étoile : "*".
- On peut également ouvrir les accès à un
compte en laissant le champ mot_de_passe vide. Toute personne
voulant se connecter avec ce compte pourra le faire.
- Pour pouvoir modifier le mot de passe d'un compte grâce à la
commande passwd, il faut être soit administrateur
systême, soit propriétaire du compte.
- UID : identifiant (unique) de chaque compte utilisateur.
Les nombres de 0 à 99 sont fréquemment réservés à des
comptes propres à la machine. Les valeurs supérieures à 100
sont elles réservées aux comptes utilisateurs.
- GID : identifiant de groupe. Le groupe par défaut
(nommé group) porte le numéro 50. Cet identifiant
est utilisé en relation avec les droits d'accès
aux fichiers. Cette question ne vous préoccupera
que si votre système comporte plus d'un seul groupe
d'utilisateurs. (Il faudra alors se préoccuper du
fichier /etc/group)
- On peut à partir du Shell, modifier l'interpréteur
de commandes. Pour ceci, on utilise la commande chsh ou
alors passwd -s. Linux cherche alors dans le fichier /etc/shells le programme que vous avez spécifié. Seules
les commandes présentes dans ce fichier seront acceptées
et remplaceront la valeur actuelle du champ programme_de_demarrage.
Ces restrictions ne s'appliquent pas au compte du superutilisateur.
- Assurez-vous que les droits d'accès du fichier
/etc/shells sont les mêmes que pour le fichier /etc/passwd
- Le superutilisateur ne se nomme pas obligatoirement root.
Pour le changer, il suffit de remplacer le nom du compte
root par celui désiré.
- Un compte privilégié est un compte dont
l'identifiant (UID, User ID) vaut zéro.
III Droit et manipulation d'un nouveau groupe.
1)Création du groupe
Pour créer le groupe gpdiiage1 il faut (comme on l'a vu
précédemment) éxécuter la commande :
Ce groupe ne possède aucun droit à sa création, car il permettera
juste aux utilisateurs de ce groupe de pouvoir accéder ou
nom à des ressources du groupe.
Seul le fait de créer un répertoire et de dire qu'il appartient
au groupe gpdiiage1 permetterait de lui donner certains droits.
Pour celà il faut taper la commande:
chgroup gpdiiage1 /home/toto |
Seul le superutilisateur "root" peut éxécuter cette commande
par défaut.Celà permet au groupe gpdiiage1 de s'approprier
le répertoire toto,puis après on peut lui changer les droits
avec la commande chmod.
2)Création de l'administrateur du groupe
Pour permettre à un utilisateur de devenir administrateur
du groupe pour pouvoir le gérer. Pour celà il faut créer
un utilisateur du groupe avec des droits spéciaux avec la
commande:
gpasswd -A AdminDiiage gpdiiage1 |
Par cette commande l'utilisateur AdminDiiage deviendra administrateur
du groupe gpdiiage1.
3)Fichiers Systèmes modifiés
Comme on l'a dit dans la deuxième partie (II) les fichiers
concernant les groupes sont /etc/group et /etc/gshadow (lorsque
l'on crypte les informations avec shadow)
et les utilisateurs on a les fichiers /etc/passwd et /etc/gshadows
(lorsque
l'on crypte les informations dont le mot de passe avec shadow)
.
4)Script qui permet d'extraire les GID des groupes
Pour faire ce script on va utiliser le langage shell de
linux et importer ce langage au début du fichier avec la
ligne #/bin/bash/ .
Ce qui donne comme fichier:
#/bin/bash/
cat /etc/group | cut -f3 -d:
|
Ce fichier sera enregistré avec l'extension .sh et sera
lancé avec la commande ./nomdu fic.sh.
5)Groupes spécifiques à une tâche
Pour faire des groupes de gestion d'imprimante,d'utilisateurs,de
sauvegarde et de montage de périphériques il
faut d'abord créer quatre groupes système,pour
cela on a l'option -r dans la commande groupeadd,exemple:
Celà permet de créer un compte système qui nous permettera
de gérer la gestion des utilisateurs.
Il reste ensuite à modifier le groupe d'appartenance des
fichiers qui permettent de ajouter des utilisateurs et d'en
supprimer.On a donc:
chgrp gpGestUsers /usr/sbin/useradd
chgrp gpGestUsers /usr/sbin/userdel
|
Puis ensuite il ne reste plus qu'à modifier les droits d'accès
du groupe sur ces fichiers:
chmod 770 /usr/sbin/useradd
chmod 770 /usr/sbin/userdel
|
Ce qui va donner tout les droits aux membres du groupe gpGestUsers
pour ajouter et supprimer des utilisateurs.
Pour les sauvegardes,le montage de périphériques et la gestion
des imprimantes il faudra répéter les mêmes actions que précédemment.
Par exemple on pourrait créer un groupe de montage de périphériques
qui pourra éxécuter la commande mount et la commande umount
en changeant le groupe et les droits d'accès de ces fichiers
qui sont à l'adresse /bin/mount et /bin/umount .
IV Les valeurs par défaut
des comptes.
La commande pour créer des nouveaux
utilisateurs est useradd
Pour voir les valeurs par défaut pour
un compte créé, il faut soit taper la comande useradd
-D, ou si on désire les modifier il faut créer
un fichier de base /etc/default/useradd avec
les valeurs retournées par /usr/sbin/useradd
-D. Voici un exemple.
GROUP=100 identifiant
du groupe primaire
HOME=/home racine des répertoires personnels
INACTIVE=-1 (nombre de jours avant destruction du compte)
EXPIRE= nombre de jours avant expiration du mot de passe
SHELL= shell de connexion attribué au compte
SKEL=/etc/skel fichiers recopiés par défaut dans chaque
répertoire personnel.
La seule chose qui manque a ce fichier est l'attribution
d'un SHELL par défault. On peut soit le paramétrer
par commande ou soit par VI. En ligne de commande il faut
taper :
/usr/sbin/useradd
-D -s/bin/bash
Ce qui configurera la ligne SHELL= en SHELL=/bin/bash.
Avec VI, il suffit de modifier la ligne SHELL= en SHELL=/bin/bash.
V Création des utilisateur stagiaire.
1)Création des comptes pour les stagiaires
Pour créer les comptes utilisateurs des stagiaires " stagiairex ",
on utilise la commande
useradd stagiaire1
addgroup gpdiiage1
addgroup permet d'identifier
le groupe de l'utilisateur créé.
Pour que le répertoire des stagiaire se situent dans /home/stagiairex,
il faut aller modifier le fichier /etc/default/useradd,
et changer HOME=/home par HOME=/home/stagiairex.
2) Les fichiers systèmes modifiés.
Les fichiers systèmes modifiés sont les fichiers
concernant les groupes sont /etc/group et /etc/gshadow (lorsque
l'on crypte les informations avec shadow) et les utilisateurs
on a les fichiers /etc/passwd et /etc/gshadows (lorsque l'on
crypte les informations dont le mot de passe avec shadow)
.
3) Les UID des nouveaux utilisateurs.
Les UID des utilisateurs sont visibles dans le fichier /etc/passwd,ils
sont supérieurs à 500, parce que ces comptes
ne sont pas des utilisateurs systèmes
VI Le compte invité.
Pour créer le compte invité,
il faut taper la commande suivante
useradd invite
Pour désactivé le compte invité, il
faut taper la commande suivante :
passwd -l(invite)
Pour réactiver ce compte, il faut taper :
passwd -u(invite)
VII Affectation des droits pour monter un lecteur.
Pour que le stagiaire2 puisse monter son lecteur de disquette,
il faut créer un groupe de montage de perifériques,
il faut que ce groupe soit un groupe système. Un groupe
système se créait avec la commande suivante
:
groupadd -r gpPointDeMontage
Il reste ensuite à modifier le groupe d'appartenance
des fichiers qui permettent de monter et de démonter
des points de montages .On a donc:
chgrp gpPointDeMontage /bin/mount
chgrp gpPointDeMontage /bin/unmount
Puis ensuite il ne reste plus qu'à modifier les droits
d'accès du groupe sur ces fichiers:
chmod 770 /bin/mount
chmod 770 /bin/unmount
Ce qui va donner tout les droits aux membres du groupe gpPointDeMontage
pour monter et de démonter des points de montages.
Ensuite il faut ajouter l'utilisateur stagiaire2 à ce
groupe grâce à la commande suivante :
gpasswd
stagiaire2 gpPointDeMontage |
VIII Donner les droits de root à un utilisateur
Pour qu'un utilisateur ait les mêmes droits que root,
il faut ajouter l'utilisateur dans le groupe wheel.
Le groupe wheel permet
de donner les droits de root à un utilisateur. Pour
ce faire, on peut ajouter le nom de l'utilisateur dans le
fichier /etc/group qui
liste tous les groupes du système ,ainsi que les utilisateurs
de ces groupes. Pour ajouter l'utilisateur, il faut écrire
son nom dans le groupe wheel.
IX Générez des restrictions sur
les mots de passe
Pour imposser une longueur de mot de passe, il faut modifier
le fichier /etc/pam.d/system-auth comme indiquer ci dessous
:
#
# Change the users password
#
passwd password required pam_cracklib.so minlen=7
passwd password required pam_unix.so use_authtok nullok md5
pam_cracklib : Permet d'accepter ou de
rejeter un mot de passe, si celui-ci se trouve dans un dictionnaire.
Il permet aussi de vérifier que l'on ne réutilisez
pas le même mot de passe. On pouvez le faire suivre
de retry=n (le nombre de tentatives) minlen=n (la longueur
imposée) difok=n (nombre de caractères qui
sont dans le vieux mot de passe et que l'on ne peut pas retrouver
dans le nouveau).
Pour donner une date d'expiration d'un mot de passe, il y a plusieurs manières.
Soit on peut paramétrer cette option pour les utilisateurs que l'on
va créer dans le futur. Pour cela il faut modifier le fichier /etc/default/useradd.
Il faut paramétrer la variable EXPIRE,
dans laquelle on met le nombre de jour avant que le mot de passe expire.
Autrement on peut le paramétrer avec la commande suivante :
adduser -D -e 2002/02/10
La date d'expiration est au format AAAA/MM/JJ
On peut aussi pramétrer la date d'expiration du mot
de passe de manière individuelle pour un utilisateur
existant déjà grâce à la commande
suivante :
usermod -e 2002/02/10
nom_utilisateur
En conclusion, on peut dire que ces restrictions sont appliquables
aussi bien à un groupe ou à un utilisateur
précis, qu'a tous les groupes ou tous les utilisateurs.
Il n'y a pas de différence avec Windows, car avec Active directory,
on peut appliquées ces restrictions aussi bien à un utilisateurs
précis qu'à tous les utilisateurs, grâce aux Unités
Organissationnelles.
X Droits d'accès sur les répertoires des autres utilisateurs
Si le stagiaire2 va sur le répertoire de base du
stagiaire1, il n'aura aucun droit sur les fichiers créer
par le stagiaire1, car les droits de base du répertoire
d'un utilisateur sont 700, ce qui signifie que l'utilisateur
de ce répertoire à les droits d'écriture
de lecture et d'execution, alors que son groupe et le reste
des utilisateurs -sauf root- n'ont aucuns droits sur ce répertoire,
donc le stagiaire2 ne pourra pas supprimer les fichiers de
stagiaire1.
Pour que stagiaire2 qui se trouve dans le même groupe
que stagiaire1, puisse accéder au répertoire
de stagiaire1 il faut que celui-ci ou root autorise les droits
d'accès à son groupe. Le paramétrage
des droits d'accès via un masque est expliqué dans
la suite du TP.
XI Le masque de protection umask
a)Présentation
Rappelons les règles simples
de propriété qui
s'appliquent à la création d'un fichier ou
d'un répertoire :
-son propriétaire est l'utilisateur qui
l'a créé
-son groupe est le groupe primaire de ce même
utilisateur
b)Permissions par défaut
Mais quelles sont les permissions
attribuées
par défaut à l'utilisateur
propriétaire, au groupe propriétaire
et à tous
les autres ?
Les permissions maximales accordées par un fichier et
un répertoire sont 666 (-rw-rw-rw-) et 777 (-rwxrwxrwx).
On peut restreindre ces permissions lors de sa création.
C'est le rôle de la commande umask de fixer les permissions
masquées, autrement dit les droits non accordés
aux fichiers et répertoires lors de leur création.
Exemple de calcul de permissions effectives, affectées
lors de la création d'un répertoire,
par un utilisateur dont le masque de protection est
037:
777 = 111 111 111 permissions maxi = rwx rwx rwx
- 037 = 000 011 111 masque de protection
= 740 = 111 100 000 permissions effectives = rwx r-- ---
c)La commande umask
umask affiche le masque de l'utilisateur actif.
Quelles sont les valeurs des masques par défaut de
root et des autres utilisateurs ?
umask -S affiche les permissions correspondantes au masque,
sous forme symbolique.
umask masque fixe les permissions ultérieures de création
des fichiers de l'utilisateur actif, conformément à masque,
en notation octale.
Attention ! le changement ne s'applique qu'à la présente
session.
d)Manipulation pour modifier le masque par défaut des utilisateurs.
Pour
la rendre permanente, on peut intervenir sur un fichier profile
:
Dans le fichier profil général /etc/profile,
on peut modifier la règle habituelle :
if [ $UID == 0 ] ; then umask 022 ; else umask 037 ; fi
Pour agir au niveau des utilisateurs, ajouter la ligne
umask masque dans le fichier de profil personnel $HOME/.bash_profile
.
Ce script permet de mettre comme masque par défaut à l'utilisateur
root les droits rwx r-x r-x sur les fichiers qu'il
créé alors que pour tous les autres utilisateurs il met
par défaut les droits rwx r-- --- sur les fichiers.
|