Nothing Special   »   [go: up one dir, main page]

Cours de Gestion Des Utilisateurs Linux

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

TABLE DES MATIÈRES

 1. COMMANDE SU
 2. PROGRAMME SUDO
 3. UTILISATEURS
 4. UTILISATEURS : FICHIER /ETC/PASSWD
 5. MOTS DE PASSE : FICHIER /ETC/SHADOW
 6. GÉNÉRER UN MOT DE PASSE ALÉATOIRE
 7. TESTER LA FORCE DES MOTS DE PASSE
 8. GROUPES
 9. FICHIERS /ETC/GROUP ET /ETC/GSHADOW
 10. APPARTENANCE À UN GROUPE

Objectifs de certification

1. Utilisateurs et groupes Linux

1. Commande su

su(substitute user ou switch user) est une commande Unix


permettant d’exécuter un interpréteur de commandes en
changeant d’identifiant de GID et de UID.

Sans argument, la commande utilise les UID 0 et le GID 0,


c’est-à-dire ceux du compte utilisateur root.

Cette commande est surtout utilisée pour obtenir les


privilèges d’administration à partir d’une session d’utilisateur
normal, c’est-à-dire, non privilégiée.

L’option - place le shell de l’utilisateur.


su
su -
su tintin
su - tintin

2. Programme sudo
sudo (abréviation de substitute user do, en anglais : «exécuter
en se substituant à l’utilisateur») est une commande qui
permet à l’administrateur système d’accorder à certains
utilisateurs (ou groupes d’utilisateurs) la possibilité de lancer
une commande en tant qu’administrateur, ou comme autre
utilisateur, tout en conservant une trace des commandes
saisies et des arguments.

Pour configurer sudo, dans une session utilisateur root :


visudo

La commande visudo ouvre le fichier de


configuration sudo avec l’éditeur vi. En voici le contenu sous
Centos 7 :
#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults env_keep += "HOME"

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL

## Allows members of the 'sys' group to run networking, software,


## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES,
LOCATE, DRIVERS

## Allows people in group wheel to run all commands


%wheel ALL=(ALL) ALL

## Same thing without a password


# %wheel ALL=(ALL) NOPASSWD: ALL

## Allows members of the users group to mount and unmount the


## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system


# %users localhost=/sbin/shutdown -h now

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d

Un utilisateur devient “sudoer” en modifiant finement ce


fichier ou ses fichiers inclus jusqu’à définir les commandes
seules autorisées. On peut profiter comme dans cet exemple
d’un configuration par défaut qui rend “sudoer” tout membre
d’un groupe défini (le groupe wheel sous Centos et le
groupe sudo sous Debian / Ubuntu).

Par exemple, ajouter un utilisateur au système en tant que


non-root :
sudo useradd zozo

Exercice : se configurer en tant qu’utilisateur normal comme


“sudoer”.

3. Utilisateurs

Toute entité (personne physique ou programme particulier)


devant interagir avec un système UNIX est authentifiée sur cet
ordinateur par un utilisateur ou “user”.

Ceci permet d’identifier un acteur sur un système UNIX. Un


utilisateur est reconnu par un nom unique et un numéro
unique.

Sur tout système UNIX, il y a un super-utilisateur,


généralement appelé root, qui a tous les pouvoirs sur le
système. Il peut accéder librement à toutes les ressources de
l’ordinateur, y compris à la place d’un autre utilisateur, c’est-à-
dire sous son identité. En général, du moins sur les systèmes
de production, seul l’administrateur système possède le mot
de passe root. L’utilisateur root porte le numéro 0.

4. Utilisateurs : fichier /etc/passwd

On peut créer un utilisateur de plusieurs manières mais la


finalité est toujours la même : pour chaque utilisateur, une
entrée doit être créée dans le fichier /etc/passwd sous ce
format :
account:passwd:UID:GID:GECOS:directory:shell

Par exemple, on ajoute un utilisateur “user1” :


echo "user1:x:2000:2000:user1:/home/user1:/bin/bash" >> /etc/passwd

Mais faut-il encore créer le groupe correspondant, vérifier la


validité des UID et GID, créer le répertoire utilisateurs, y
donner les droits et y placer une structure …

5. Mots de passe : fichier /etc/shadow

Le mot de passe est écrit dans le fichier /etc/shadow avec ses


paramètres :

1. nom de connexion de l’utilisateur (« login »)


o mot de passe chiffré
: $1$ (MD5),$2$ (Blowfish), $5$ (SHA-256), $6$ (SHA-
512)
o date du dernier changement de mot de passe
o âge minimum du mot de passe
o âge maximum du mot de passe
o période d’avertissement d’expiration du mot de
passe
o période d’inactivité du mot de passe
o date de fin de validité du compte
o champ réservé
Par exemple :
francois:$6$d/uLirbD$s90XRAj6g14036jIuvYYQaSOSrcJKqiNNywIQplztkTlyIrySZE1o2zjFvSob
ewvyORXFdZ7bGeF0U1OTPoOm.:16842:0:99999:7:::

6. Générer un mot de passe aléatoire

 pwmakeest un outil qui permet de générer des mots de


passe (Centos 7) :
pwmake 128
Ib9AHK3boravZUSuNuffYPExunEn

 Voici un exemple à utiliser dans un exercice de


récupération de mot de passe :
pwmake 128 | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.

On peut utiliser des outils natifs :

 Avec les utilitaires de génération d’empreinte :


date +%s | sha256sum | base64 | head -c 32 ; echo

 Avec /dev/urandom :
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;

 Avec openssl s’il est installé :


openssl rand -base64 32

Dans les dépôts Debian, on trouve les générateurs de mots de


passe:
 pwgen
 apg
 makepasswd
7. Tester la force des mots de passe

On peut tester la force des mots de passe avec John The


Ripper.

Si le paquet john est présent dans le dépôt Debian / Ubuntu, il


n’est pas disponible pour les distributions RHEL. On peut alors
le compiler soi-même
: https://gist.github.com/goffinet/83565ebec963fed0c74d
#!/bin/bash
# Centos 7 John the Ripper Installation
yum -y install wget gpgme
yum -y group install "Development Tools"
cd
wget https://www.openwall.com/john/j/john-1.8.0.tar.xz
wget https://www.openwall.com/john/j/john-1.8.0.tar.xz.sign
wget https://www.openwall.com/signatures/openwall-signatures.asc
gpg --import openwall-signatures.asc
gpg --verify john-1.8.0.tar.xz.sign
tar xvfJ john-1.8.0.tar.xz
cd john-1.8.0/src
make clean linux-x86-64
cd ../run/
./john --test
#password dictionnary download
wget -O - https://mirrors.kernel.org/openwall/wordlists/all.gz | gunzip -c >
openwall.dico

et puis :
john /etc/shadow
Loaded 4 password hashes with 4 different salts (generic crypt(3) [?/64])
testtest (tintin)
testtest (root)
testtest (francois)
testtest (gustave)
guesses: 4 time: 0:00:02:25 DONE (Tue Feb 3 23:06:29 2015) c/s: 170 trying:
spazz - dasha
Use the "--show" option to display all of the cracked passwords reliably

8. Groupes

Un utilisateur UNIX appartient à un ou plusieurs groupes.


Les groupes servent à rassembler des utilisateurs afin de leur
attribuer des droits communs.

Le groupe principal est le groupe initial de l’utilisateur.

L’utilisateur peut appartenir à des groupes secondaires.

9. Fichiers /etc/group et /etc/gshadow

Les fichiers /etc/group et /etc/gshadow définissent les groupes.

Le fichier /etc/group comporte 4 champs séparés par “:”.

1. nom du groupe
2. mot de passe du groupe (ou x si le fichier gshadow existe)
3. le GID
4. liste des membres séparés par une virgule

10. Appartenance à un groupe

On peut vérifier son identifiant et l’appartenance aux groupes


via les commandes id et groups :
id
uid=1000(francois) gid=1000(francois) groupes=1000(francois),10(wheel)
contexte=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
groups
francois wheel

Vous aimerez peut-être aussi